Javascript nodeJS中的arr.sort()如何工作?
我使用arr得到了一个奇怪的结果。下面的代码是sort()Javascript nodeJS中的arr.sort()如何工作?,javascript,node.js,Javascript,Node.js,我使用arr得到了一个奇怪的结果。下面的代码是sort() const arr=[1,99,102,121,2,2,3,7] arr.sort() console.log(arr) 我得到以下输出 [ 1, 1000, 121, 2, 2, 3, 7, 99 ] 有人能解释一下发生了什么以及为什么吗?接受函数作为参数: compareFunction可选 指定定义排序顺序的函数如果省略,数组元素将转换为字符串,然后根据每个字符的Unicode码点值进行排序 您需要arr.
const arr=[1,99,102,121,2,2,3,7]
arr.sort()
console.log(arr)
我得到以下输出
[
1, 1000, 121, 2,
2, 3, 7, 99
]
有人能解释一下发生了什么以及为什么吗?接受函数作为参数:
compareFunction可选指定定义排序顺序的函数如果省略,数组元素将转换为字符串,然后根据每个字符的Unicode码点值进行排序 您需要
arr.sort((a,b)=>a-b)
如
默认的排序顺序是升序,建立在将元素转换为字符串,然后比较它们的UTF-16代码单元值序列的基础上
因此,您的值将首先转换为字符串,然后按字典进行比较。Ie“101”
小于“2”
如果要进行数字排序,必须提供比较函数
const arr=[1,99102121,2,2,3,7]
arr.sort((a,b)=>a-b);
控制台日志(arr)代码>同样相关:| | | | | | |你读了吗?它在第一段中解释了它将值排序为字符串。