includes()函数通常工作得很好,但是在这种特定情况下,它总是返回false,我不知道为什么。我花了很多时间来确保它不仅仅是错字,而且我敢肯定这不是错字。
如果给定的值在数组中,我希望我的代码返回true。但是实际上,无论如何它都会返回false。
代码如下:
let array = [
{
x: 10,
y: 500,
width: 100,
height: 50
},
{
x: 100,
y: 550,
width: 150,
height: 20
}
];
if (
array.includes({
x: 10,
y: 500,
width: 100,
height: 50
})
) {
console.log(true);
} else {
console.log(false);
}
答案 0 :(得分:2)
包括按引用比较对象。它不会对每个对象进行深入的比较。您可能需要使用.find
并创建一个执行深度比较的函数。 lodash
或类似的库可能会提供开箱即用的功能。