Array.includes()在数组中查找对象

tim*_*hym 9 javascript arrays object

我正在尝试使用来在数组中查找对象Array.prototype.includes。这可能吗?我意识到浅层比较和深层比较之间是有区别的。这是下面的代码返回false的原因吗?我找不到的相关答案Array.includes()

开发人员工具控制台

Mar*_*yer 15

Array.includes像一样通过对象标识进行比较obj === obj2,因此可悲的是,除非这两项是对同一对象的引用,否则这将无法工作。您通常可以使用Array.prototype.some()带有功能的方法:

const arr = [{a: 'b'}]
console.log(arr.some(item => item.a === 'b'))
Run Code Online (Sandbox Code Playgroud)

但是,当然,您需要编写一个小的函数来定义相等性的含义。


Rah*_*dhi 5

它的'因为两个对象都不相同。两者都存储在内存中的不同位置以及相等运算的结果false

但是如果你搜索同一个对象,那么它会返回true.

在此处输入图片说明

另外,看看下面的代码,您可以在其中理解两个相同的对象也false===运算符有关。

对于返回truein 的两个对象===,它们应该指向相同的内存位置。

在此处输入图片说明