首页 > 解决方案 > 检查对象是否存在于数组中,不包括特定属性

问题描述

有没有办法在排除一个属性的同时检查一个对象是否存在于数组中?我不知道对象中将存在哪些属性,因此我无法手动比较属性。

根据下面的代码,我想检查excludeobj中是否存在。arrprop3

例子:

const obj = {
  "prop1": "value1",
  "prop2": "value2"
}

const arr = [{
    "prop1": "value1",
    "prop2": "value2",
    "prop3": "value3"
  },
  {
    "prop1": "value4",
    "prop2": "value5",
    "prop3": "value6"
  }
]

arr.indexOf(obj) > -1; // returns false, need something like this that returns true

标签: javascriptarrays

解决方案


用户 Array.findIndex() 方法查找索引:

const keys = Object.keys(obj);
arr.findIndex((o) => {
  return keys.every(k => o[k] && o[k] === obj[k])
});

推荐阅读