有没有一种方法可以在排除一个属性的同时检查对象是否存在于数组中?我不知道对象中将存在哪些属性,因此无法手动比较属性。
基于以下代码,我想检查obj
中是否存在arr
(不包括prop3
)。
示例:
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
答案 0 :(得分:0)
使用Array.findIndex()方法查找索引:
df_local.columns = ['observation_id', 'local_id', 'local_min', 'local_max']
df = pd.merge(df_global, df_local, on = 'observation_id', how = 'outer')
答案 1 :(得分:0)
像这样使用Array.findIndex
,Object.keys
和Array.every
的组合:
const obj = {
"prop1": "value1",
"prop2": "value2"
}
const arr = [{
"prop1": "value1",
"prop2": "value2",
"prop3": "value3"
},
{
"prop1": "value4",
"prop2": "value5",
"prop3": "value6"
}
]
const index = arr.findIndex(item => {
// For every item of array:
// - Iterate over obj keys
// - If every k/v pair of obj matches a k/v pair of item
// then it's a match
return Object.keys(obj).every(key => item[key] === obj[key])
})
console.log(index)
尽管只是想知道它是否存在,您应该使用Array.some
而不是Array.findIndex
。