sort()方法默认按升序排序,排序过程中调用每个元素的toString()方法,转换成字符串之后再进行排序。即使元素均为数字,sort()内部也会先转换字符串,再比较。
举例:
var arr=[1,6,56,43,2];
console.log(arr.sort());
输出:
[1,2,43,56,6]
是不是很意外?
因此,如果想正确排序的话,老老实实reduce吧!
JavaScript的数组sort()方法默认按升序排序,但其内部将元素转换为字符串进行比较,可能导致数字排序错误。例如,[1,2,43,56,6]使用sort()会变成[1,2,43,56,6]。为确保数字正确排序,建议使用reduce或其他稳定排序方法。了解这一陷阱对于优化JavaScript代码至关重要。
sort()方法默认按升序排序,排序过程中调用每个元素的toString()方法,转换成字符串之后再进行排序。即使元素均为数字,sort()内部也会先转换字符串,再比较。
举例:
var arr=[1,6,56,43,2];
console.log(arr.sort());
输出:
[1,2,43,56,6]
是不是很意外?
因此,如果想正确排序的话,老老实实reduce吧!
893
1038
2211

被折叠的 条评论
为什么被折叠?