我有一个带有以下正文的响应,一个数组。 我想检查我们是否有一件物品,并且只有一件物品的值为 IsPrimary true 且 salePerson 的值为“Chuck Norris”。
[
{
"districtName": "Austria",
"storeName": "Store6",
"salePerson": "sdfgh",
"isPrimary": false
},
{
"districtName": "Austria",
"storeName": "Store6",
"salePerson": "dfsd",
"isPrimary": false
},
{
"districtName": "Austria",
"storeName": "Store6",
"salePerson": "Chuck Norris",
"isPrimary": true
},
{
"districtName": "Austria",
"storeName": "Store6",
"salePerson": "sdfgh",
"isPrimary": false
}
我尝试过滤它给了我错误:
data =pm.response.body;
let object_to_find = { saleperson: 'Chuck Norris' };
let result2 = data.filter(function (value) {
return value.id == object_to_find.id && value.name == object_to_find.name;
});
console.log(result2);
错误:
Couldn't evaluate the test script:
TypeError: Cannot read properties of undefined (reading 'filter')
要根据特定条件过滤数组(在您的情况下,查找 salePerson 为 'Chuck Norris' 且 isPrimary 为 true 的项目),您可以使用过滤器函数,如下所示:
let data = pm.response.json();
let result = data. Filter(function(item) {
return item.salePerson === 'Chuck Norris' && item.isPrimary === true;
});
console.log(result);
还要确保在应用过滤器函数之前使用 pm.response.json() 将响应正文 (pm.response.body) 正确解析为 JavaScript 对象,并确认用于比较的属性名称 (salePerson、isPrimary) 完全匹配与响应对象中的那些。