{
"identityA": {
"_id": "5e98baf27457da339b219eb8",
"altitude": 0,
"startTime": "2020-04-16T20:07:00.000Z",
"endTime": "2020-04-16T20:07:00.000Z",
"lat": 30.66702,
"lng": 73.12998,
"personId": "5e95dfc46cbdd81757e47da2"
},
"identityB": {
"_id": "5e98baf47457da339b219eba",
"altitude": 0,
"startTime": "2020-04-16T20:07:00.000Z",
"endTime": "2020-04-16T20:07:00.000Z",
"lat": 30.66869,
"lng": 73.13591,
"personId": "5e97682d517976252cdab2d1"
},
"dist": 0.3709439708757079,
"id": "5e98bbb77457da339b219ed6",
"createdAt": "2020-04-16T20:10:31.314Z",
"updatedAt": "2020-04-16T20:10:31.314Z"
}
这是我的数组的一个示例对象,我是否能够使用 array.includes 检测数组中是否已经有这个对象。这是我的检查。我的目标是不推送重复的元素
if (!finalInteractions.includes(element1)) {
finalInteractions.push(element1);
}
最佳答案
Array.prototype.includes
本质上与 ===
运算符的比较方式相同。所以对于对象来说,它是通过引用进行比较,而不是通过值进行比较。
这就是为什么使用引用调用 includes
会起作用,而使用具有相同属性值但不是引用的对象调用 includes
则不起作用:
const arr = [
{
name: 'object1'
},
{
name: 'object2'
}
];
console.log(arr.includes(arr[0])); // --> true
console.log(arr.includes({name: 'object1'})); // --> false
关于javascript - array.include 是否适用于嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61326797/