Javascript includes()即使在硬编码值时也返回false
includes()函数通常工作得很好,但在这种特殊情况下,它总是返回false,我不知道为什么。我花了很多时间来确认这不仅仅是一个打字错误,而且我很确定它不是 如果给定的值在数组中,我希望代码返回true。但它实际上做的是,不管发生什么,它都返回false 代码如下:Javascript includes()即使在硬编码值时也返回false,javascript,arrays,Javascript,Arrays,includes()函数通常工作得很好,但在这种特殊情况下,它总是返回false,我不知道为什么。我花了很多时间来确认这不仅仅是一个打字错误,而且我很确定它不是 如果给定的值在数组中,我希望代码返回true。但它实际上做的是,不管发生什么,它都返回false 代码如下: let array = [ { x: 10, y: 500, width: 100, height: 50 }, { x:
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);
}
包括按引用比较对象。它没有对每个对象进行深入的比较。您可能需要使用
.find
并创建一个函数来执行深度比较lodash
或类似的库可能会提供一个开箱即用的功能。包括通过引用比较对象。它没有对每个对象进行深入的比较。您可能需要使用.find
并创建一个函数来执行深度比较lodash
或类似的库可能会提供一个现成的函数来完成此操作。您有一个不同的对象!你有一个不同的目标!