对于数组 [3, 15, 8, 29, 102, 22]
使用 .sort()
方法,结果是 [102, 15, 22, 29, 3, 8]
。
原因:
Array.prototype.sort()
方法默认是按字典顺序(即字符串的顺序)对数组元素进行排序的。它会将数组中的元素转换为字符串,然后按字典顺序比较这些字符串。
在这个例子中,排序过程如下:
-
转换为字符串:
3
->"3"
15
->"15"
8
->"8"
29
->"29"
102
->"102"
22
->"22"
-
按字典顺序比较字符串:
"102"
>"15"
"15"
>"22"
"22"
>"29"
"29"
>"3"
"3"
>"8"
因此,排序后的结果是 [102, 15, 22, 29, 3, 8]
。如果要按数值排序,需要传递一个比较函数给 .sort()
,例如:
[3, 15, 8, 29, 102, 22].sort((a, b) => a - b);
这将返回 [3, 8, 15, 22, 29, 102]
。