JavaScript - 在对象数组中查找匹配对象 [英] JavaScript -- find matching object in array of objects
本文介绍了JavaScript - 在对象数组中查找匹配对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试在对象数组中搜索对象。
I am trying to search for an object in an array of objects.
注意,vals和recs对象将是DYNAMIC。
Note, vals and recs objects will be DYNAMIC.
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"}
];
现在我需要检查val中的所有key:value对是否已存在于recs中。在这种情况下,recs [0]是val的精确匹配。
Now I need to check if all key:value pairs in vals already exist in recs . In this case, recs[0] is an exact match of 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)将是DYNAMIC,具有X个键:值对。
The above works only because I have hardcoded the keys from the vals object. In reality, the VALS object (and recs) will be DYNAMIC with X number of key:value pairs.
那么如何修改动态vals对象的for循环?
So how can I modify my for loop for a dynamic vals object?
谢谢!
推荐答案
试试这个:
for (var i = 0; i < recs.length; i++) {
var found = true;
for (var p in vals) {
if (vals.hasOwnProperty(p)) {
if (recs[i][p] !== vals[p]) {
found = false;
break;
}
}
}
console.log(found);
}
这篇关于JavaScript - 在对象数组中查找匹配对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文