JavaScript - 在对象数组中查找匹配对象 [英] JavaScript -- find matching object in array of objects

查看:117
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆