如何使用JS检查对象是否存在于另一个对象中

YMA981

假设我有一个对象数组

var arr= [{name:'John', lastName:'Smith', age:25}, {name:'Steve', lastName:'Johnson', age:56}];
var obj1 ={name:'John', lastName:'Smith'};

如何使用JS检查对象是否存在于另一个对象中?

嵌套循环会成功吗?第一个循环遍历数组内部的对象,第二个循环遍历对象内部的键/值对,并将它们与obj1键/值对进行比较。有一个更好的方法吗 ?还是应该使用3个循环?

函数应在包含obj1的arr中返回obj el。例如:arr [0]应该返回,因为它包含obj1

function objInArr(srcArr, obj) {

  var arr = [];

  //var srcLength = 0; 
  //var sourceSize = Object.keys(source).length; // The length of the source obj
  srcArr.forEach(function(el) {

    el.forEach(function(objEl){
      obj.forEach(function(sourceEl){
         if( sourceEl === objEl) { arr.push(sourceEl); }
      });
    });
  });

  return arr;
}
ŝ

您可以使用Arry#find()Array#some()方法的组合来遍历数组对象,并查找是否存在具有相同键和值的对象:

var exists = arr.find(function(o){
    return Object.keys(o).some(function(k){
          return !Object.keys(obj1).indexOf(k)>-1 || o[k]!=obj1[k];
    });
});

它会返回一个object如果存在的话,如果你想返回一个boolean你可以改变.find()一个.some()

!Object.keys(obj1).indexOf(k)>-1 || o[k]!=obj1[k]如果对象没有迭代key对象不相同,则该语句将退出value

演示:

var arr= [{name:'John', lastName:'Smith', age:25}, {name:'Steve', lastName:'Johnson', age:56}];
var obj1 ={name:'John', lastName:'Smith'};

var exists = arr.find(function(o){
    return Object.keys(o).some(function(k){
          return !Object.keys(obj1).indexOf(k)>-1 || o[k]!=obj1[k];
    });
});

console.log(exists);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Java检查指定对象是否存在于给定对象列表中

查找列表的对象是否存在于另一个列表中

jQuery如何检查一组对象是否存在于另一个数组对象中

检查对象是否存在于属性中

如何使用JSON检查对象是否存在于JSON中

如何检查一个JavaScript对象中的值是否存在于另一个JavaScript对象中?

Javascript-检查对象是否存在于对象数组中并更新数量

Typescript:按值检查对象是否存在于数组中

如何检查值是否存在于另一个熊猫数据框中?

在SOAP请求中设置对象的值之前,如何检查对象是否存在于数组中?

如何检查对象属性是否也存在于另一个对象中?

检查键是否存在于另一个对象中

如何检查对象是否存在于Angular中的对象数组中

如何判断对象的所有值是否存在于另一个对象中

reactjs如何过滤/检查数组中的任何对象是否存在于另一个对象数组中?

检查对象是否包含JavaScript中另一个对象的任何元素

检查一个对象中的项目是否存在于另一个对象中(使用下划线)

检查对象列表是否在另一个对象列表中已经存在

检查对象值数组是否存在于另一个数组中,但长度不同

检查对象是否存在于另一个模型外键字段中

如何检查一个 json 对象数组中的 id 是否存在于另一个 json 对象嵌套数组中?

如何检查对象是否存在于多个数组中

如何使用javascript检查子对象是否存在于对象数组中?

如何检查当前数组中的对象是否存在于前一个数组中

检查对象是否存在于数组中

如何检查嵌套对象的值是否已存在于另一个对象中?

如何反向检查对象是否存在于多对多 django 中?

使用 lodash 过滤对象数组并检查对象属性值是否存在于另一个数组中

检查对象是否存在于指定路径的多级列表中