use*_*532 1 javascript sorting numbers
如果我要运行"[6,3,8,7,5,2,1,9,4,0] .sort()"我得到"[0,1,2,3,4,5,6, 7,8,9]"作为你期望的输出.它将数字从最小到最大排序.但如果我要运行"[2,3,1,4e-20] .sort()",我会得到"[1,2,3,4e-20]"作为输出.为什么".sort()"函数将"4e-20"视为大于"3"?即使您运行"3> 4e-20",您也会得到"true"作为输出,表明JavaScript确实意识到"4e-20"是一个非常小的数字.但是sort函数将它视为一个非常大的数字.为什么是这样?是否有某些方法可以改变它,或者我只需要编写自己的函数?
"默认排序顺序是根据字符串 Unicode代码点."
然后继续"[比较]比较数字而不是字符串,比较函数可以简单地从a中减去b.以下函数将对数组进行升序排序":
function compareNumbers(a, b) {
return a - b;
}
Run Code Online (Sandbox Code Playgroud)