【发布时间】:2014-08-12 06:06:37
【问题描述】:
如果我运行 "[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 函数将其视为一个非常大的数字。为什么是这样?有什么方法可以改变它,还是我只需要编写自己的函数?
【问题讨论】:
-
请仔细阅读这句话:“即使你运行“3>4e-20”,你也会得到“true”作为输出,这表明 JavaScript 确实意识到“4e-20”是一个令人难以置信的小数字。”
-
arr.sort() does not sort integers correctly 的可能重复项(这也适用于非整数)
标签: javascript sorting numbers