Array.sort()函数未返回预期结果。那实际上是如何工作的?
const arr = [1, 5, 12, 8, 17];
console.log(arr.sort());
预期结果将是:[1、5、8、12、17] 但我得到的结果是:[1、12、17、5、8]
答案 0 :(得分:1)
您需要传递一个回调以对整数数组进行排序。如果默认情况下不传递回调,则它将根据UTF-16代码值单位进行排序。根据{{3}}
sort()
方法对数组元素进行适当排序并返回排序后的数组。默认的排序顺序是基于将元素转换为字符串,然后比较其UTF-16代码单元值的序列
const arr = [1, 5, 12, 8, 17];
console.log(arr.sort((a,b) => a - b));