假设我有:
a=[[1,2],[3,4],[5,6]]这是错的吗?
a.indexOf([1,2])为什么是-1?
发布于 2013-01-20 01:08:48
因为[1,2] == [1,2]是false
javascript对象的不同实例之间不存在等价性。
来自==上的the MDN:
如果两个操作数都是对象,则当操作数引用内存中的同一对象时,JavaScript将比较相等的内部引用。
您可以构建自己的函数来查找数组中的数组,但在这种情况下,由于必须检查内部数组的所有元素(或构建散列代码),这将不会很快。你最好避免这种搜索。
发布于 2013-01-20 01:10:55
你不能在JAVASCRIPT中使用数组!
JavaScript数组本质上是从对象继承的当您检查相等条件时,这两个对象的内部引用是不同的,它返回-1,尽管所有元素都是相同的
因此,当您调用.indexOf时,它将比较失败的数组,因此您将得到-1
您需要构建自己的函数来深入检查数组及其子数组是否相等,或者您可以使用一些库,如_.js
https://stackoverflow.com/questions/14420368
复制相似问题