说我有一个对象数组arr = []
。
在arr
内,有许多对象,都是相同的格式,比如说。
arr = [
{
"a": "asdf",
"b": {
"a": 2,
"b": 1,
"c": 4
},
"c": {
"a": 0,
"b": 1
}
},
{
"a": "xswh",
"b": {
"a": 4,
"b": null,
"c": 8
},
"c": {
"a": 6,
"b": 5
}
}
]
如果我的变量是相同形状的对象:
obj1 = {
"a": "asdf",
"b": {
"a": 2,
"b": 1,
"c": 4
},
"c": {
"a": 0,
"b": 1
}
}
如何快速检查此对象obj1
是否在数组中? (意思是,如果在数组中有一个具有完全相同的参数和值的对象。
我试过arr.includes(obj1)
,但似乎没有用。
答案 0 :(得分:0)
您可以使用findIndex
功能并执行以下操作:
arr.findIndex(item => JSON.stringify(item) === JSON.stringify(obj1));
答案 1 :(得分:0)
使用 - Lodash
的解决方案你可以在集合(数组)上使用find
来查找特定对象值的匹配,使用isEqual
来对你进行深度比较(在这种情况下是对象的属性)。
_.find(arr, (v) => {
return _.isEqual(v, obj1);
});
find
- 'Find' documentation
isEqual
- 'isEqual' documentation