我有Json的回应如下....
{
"errors": [
{
"status": "XXXX",
"source": ["pointer","value"],
"detail": "ZZZZZZZZZZZZZZ."
},
{
"status": "XXXX",
"source": ["pointer","value"],
"detail": "ZZZZZZZZZZZZZZZ."
},
{
"status": "XXXX",
"source": ["pointer"],
"title": " ZZZZZZZZZZZZZZZZ"
}
]
}
我必须检查天气源是否在所有字段中同时具有指针和值。 我尝试了一些如下的事情..
responseJson = JSON.parse(responseBody);
var list = responseBody.length;
tests["Expected fields"] = list === undefined || errors[0].source=== ["pointer","value"];
有人可以帮忙吗?
你需要这样的东西吗:
var dataHaveIt = {
"errors": [{
"status": "XXXX",
"source": ["pointer", "value"],
"detail": "ZZZZZZZZZZZZZZ."
},
{
"status": "XXXX",
"source": ["pointer", "value"],
"detail": "ZZZZZZZZZZZZZZZ."
}
]
};
var dataDontHaveIt = {
"errors": [{
"status": "XXXX",
"source": ["pointer", "value"],
"detail": "ZZZZZZZZZZZZZZ."
},
{
"status": "XXXX",
"source": ["pointer", "value"],
"detail": "ZZZZZZZZZZZZZZZ."
},
{
"status": "XXXX",
"source": ["pointer"],
"title": " ZZZZZZZZZZZZZZZZ"
}
]
};
var allHaveIt = false;
allHaveIt = dataHaveIt.errors.reduce(function(result, element) {
return result && element.source.includes("pointer") && element.source.includes("value")
}, true);
console.log(allHaveIt);
allHaveIt = dataDontHaveIt.errors.reduce(function(result, element) {
return result && element.source.includes("pointer") && element.source.includes("value")
}, true);
console.log(allHaveIt)
实际工作在此代码中完成:
allHaveIt = dataHaveIt.errors.reduce(function(result, element) {
return result && element.source.includes("pointer") && element.source.includes("value")
}, true);
当作为最后一个参数true
传递给reduce()
方法时,我们假设所有值都存在,然后reduce()
将遍历所有元素,并在includes()
的帮助下,我们可以检查source
属性是否包含这些元素