JavaScript数组如何进行比较?

6
有没有定义JavaScript如何进行比较的标准,我在Chrome控制台上获取到了这个:
[10,0,0] > [1,0,0]
true
[10,0,0] > [5,0,0]
false
[5, 0, 0, 0] < [10, 0, 0, 0] //repeatable
false

[10,0,0,0] > [9,0,0,0]
false
[11,0,0,0] > [10,0,0,0]
true

这显得非常不直观,我甚至无法理解应用了什么逻辑,而且它们看起来是可重复的,因此不像基于对象ID(ref)等,请问是否有任何相关文档?


1
也许ECMAScript规范可以帮助你:http://www.ecma-international.org/ecma-262/5.1/#sec-11.8.5 - Stasik
它是否隐式调用toString并按字母顺序进行比较? - Chris Farmer
1
类似问题的这个答案可能会有用:https://dev59.com/qmsy5IYBdhLWcg3wxQ0k#8329014 - Ivan Antropov
你可以查看这个问题:https://dev59.com/V2sz5IYBdhLWcg3wiISe - pinkpanther
再开一个线程可能会有帮助。 - Sudeep nayak
2个回答

4

JavaScript数组将被转换为字符串,然后比较这些字符串。因此,

[10,0,0].toString() => "10,0,0"
[5,0,0].toString() => "5,0,0"

字符串按字典顺序进行比较,因此 "5,0,0" 大于 "10,0,0"。


1

像这样的东西可能会对您有所帮助,

JSON.stringify([2,2,2]) === JSON.stringify([2,2,2]); //true

干杯 :).


这会对他有什么帮助? - Chris Farmer
通过这种方法,我们可以直接将两个数组作为字符串进行比较。 - Indrajit Das

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接