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)
但是,当然,您需要编写一个小的函数来定义相等性的含义。
它的'因为两个对象都不相同。两者都存储在内存中的不同位置以及相等运算的结果false
。
但是如果你搜索同一个对象,那么它会返回true
.
另外,看看下面的代码,您可以在其中理解两个相同的对象也false
与===
运算符有关。
对于返回true
in 的两个对象===
,它们应该指向相同的内存位置。
归档时间: |
|
查看次数: |
10328 次 |
最近记录: |