===运算符如何为JavaScript中的对象工作?我想知道这一点,因为我想知道做>>> [0,1,2] == [0,1,2]
True
>>> [0,1,2] == [0,2,1]
False
>>> [0,1] == [0,1,2]
False
的费用是多少?由于(ObjectA === ObjectB)
使用===来比较对象和返回索引,它会成为一项代价高昂的操作吗? (这里的数组是一个对象数组。)我读了this但是听不懂。
答案 0 :(得分:1)
我想知道做
的费用是多少(ObjectA === ObjectB)
与执行1 === 1
的费用大致相同。
即使这是一项昂贵的操作,它根本不是(根本),你还会做什么?如果你想比较,你必须比较。
答案 1 :(得分:1)
复杂性方面的成本肯定是O(1)
,因为它在某些方面可能至关重要。 Array.indexOf
为O(n)
,但不要担心,对于某些对象的n
次比较,您不会得到二次复杂度。
另一方面,您必须记住,使用n
次Array.indexOf
实际上是二次方。
作为指导原则,我通常禁止自己在循环中使用Array.indexOf
,并找到使用哈希的方法。
答案 2 :(得分:0)