Javascript includes()即使在硬编码值时也返回false

Javascript includes()即使在硬编码值时也返回false,javascript,arrays,Javascript,Arrays,includes()函数通常工作得很好,但在这种特殊情况下,它总是返回false,我不知道为什么。我花了很多时间来确认这不仅仅是一个打字错误,而且我很确定它不是 如果给定的值在数组中,我希望代码返回true。但它实际上做的是,不管发生什么,它都返回false 代码如下: let array = [ { x: 10, y: 500, width: 100, height: 50 }, { x:

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);
}

包括按引用比较对象。它没有对每个对象进行深入的比较。您可能需要使用
.find
并创建一个函数来执行深度比较
lodash
或类似的库可能会提供一个开箱即用的功能。

包括通过引用比较对象。它没有对每个对象进行深入的比较。您可能需要使用
.find
并创建一个函数来执行深度比较
lodash
或类似的库可能会提供一个现成的函数来完成此操作。

您有一个不同的对象!你有一个不同的目标!