我有以下循环。
for (var key in criteria) {
var exists = Object.keys(item).some(function(k) {
return item[k] === "Test";
})
}
这很好用。根据项目数,我得到了15 trues
。但是,如果我将其更改为以下内容:
for (var key in criteria) {
var myString = item[key];
var exists = Object.keys(item).some(function(k) {
return item[k] === myString;
});
}
我知道item[key]
在循环中的某个时刻等同于“测试”,但不会产生相同的结果。实际上,它返回所有trues
条件是这样的对象:
{
habitat_type: "Mangroves",
issue_specific_terms: "Test"
}
Item也是类似的对象:
{
habitat_type: "Streams and rivers",
cci: "Low productivity/loss of agriculture",
intervention_type: "Restoration",
issue_specific_terms: "Test",
country: "United States of America"
}
答案 0 :(得分:2)
您需要更改myString
是什么-当前,它总是相等的,因为criteria
当前不在其中。将myString
更改为criteria[key]
:
for (var key in criteria) {
var myString = criteria[key];
var exists = Object.keys(item).some(k => item[k] === myString);
}