如果该对象已存在于数组中,我正在尝试从该数组中删除该对象。我知道如何删除对象,但是我正在使用includes()
方法来查找对象是否存在。我似乎无法正常工作。这是一些代码:
const sampleRange = [{from: 500, to: 600}, {from: 700, to: 800}]
const objectFromRange = sampleRange[0]
const objectRange = {from: 500, to: 600}
sampleRange.includes(objectFromRange) => true
sampleRange.includes(objectRange) => false
那么为什么一个sampleRange.includes出现在true
而不是另一个出现在false
呢?他们是同一个对象。
答案 0 :(得分:5)
这是因为对象变量是对内存中某个位置的引用。这就是objectFromRange
有效但objectRange
不起作用的原因。 objectFromRange
引用数组中内存的位置,而objectRange
引用不引用。要执行您想做的事情,请使用Array.some()
sampleRange.some((range)=>range.from == 500 && range.to == 600)
答案 1 :(得分:1)
const objectRange = {from: 500, to: 600}
在这一行中,您创建了对象的新实例,它与数组中的对象不同。