Javascript 数组如何与关系运算符(如小于和大于)交互?
我最近发现阵列是可订购的:Javascript 数组如何与关系运算符(如小于和大于)交互?,javascript,arrays,Javascript,Arrays,我最近发现阵列是可订购的: >> [1, 2] < [3, 4] <- true >> [1, 2] < [0, 4] <- false >[1,2] [1, 2] < [0, 4] > [1, 3] > [1, 2] 相比之下,JS将非基本类型(数组)转换为基本类型: 对于关系抽象比较(例如,引用MDN链接:这些运算符中的每一个都将调用valueOf()在进行比较之前,我必须准确地查找valueOf方法对数组的作用,但iirc it将它们放入字
>> [1, 2] < [3, 4]
<- true
>> [1, 2] < [0, 4]
<- false
>[1,2]<[3,4]
> [1, 2] < [0, 4]
> [1, 3] > [1, 2]
相比之下,JS将非基本类型(数组)转换为基本类型:
对于关系抽象比较(例如,引用MDN链接:这些运算符中的每一个都将调用valueOf()在进行比较之前,我必须准确地查找valueOf
方法对数组的作用,但iirc it将它们放入字符串中,并在每个值之间加逗号,字符串按字典顺序进行比较。我想这解释了您观察到的行为,但我不会将其作为一个例子回答,因为我对某些细节不确定。@RobinZigmond我检查过-valueOf
只是返回原始数组,没有变化。相关,如果不是重复的话,尽管我比链接Q/a中给出的答案更喜欢这个答案。@IljaEverilä很好,谢谢。@IljaEverilä是的,我同意。我想我会留下小数向JS的家人致意。
>> [1, 3] > [1, 2]
<- true
>> [-1, 2] < [-2, 2]
<- true
>> -1 < -2
<- false