我正在尝试在对象数组中搜索一个对象。
注意,vals和recs对象将是动态的。
var vals = {ID: "4", LOC: "LA", SEQ: "1"};
var recs = [
{ID:"4", LOC:"LA", SEQ:"1"},
{ID:"4", LOC:"NY", SEQ:"1"},
{ID:"4", LOC:"CHI",SEQ:"1"}
];
现在我需要检查 vals 中的每个键值对是否已经存在于 recs 中。在这种情况下,recs[0] 是 vals 的一个完全匹配。
以下是我的尝试:
var vals = {ID: "4", LOC: "LA", SEQ: "1"};
var recs = [
{ID:"4", LOC:"LA", SEQ:"1"},
{ID:"3", LOC:"NY", SEQ:"2"},
{ID:"2", LOC:"CHI",SEQ:"3"}
];
for(var i = 0; i<recs.length; i++){
if(recs[i]["ID"] == vals["ID"] && recs[i]["LOC"] == vals["LOC"] && recs[i]["SEQ"] == vals["SEQ"]){
console.log(true);
}
else{
console.log(false);
}
}
上面的代码只能工作是因为我已经硬编码了vals对象中的键。实际上,VALS对象(和recs)将是动态的,具有X个键值对。
那么我该如何修改我的for循环来适应动态的vals对象呢?
谢谢!
var keys = Object.keys(vals);
- epascarello{a:1}
是否描述了{a:1,b:2}
? 它应该返回第一个结果,所有匹配项还是一个布尔值? - dandavis