sort() 后 JavaScript 十进制数数组顺序不正确

标签 javascript arrays sorting

有人可以向我解释一下为什么下面这段代码:

var points = [
  99.1,
  100,
  99.9
];

console.log(points.sort());

... log()这是未排序的数组:

[100, 99.1, 99.9]

sort()之后,数组不应该是下面这个吗?

[100, 99.9, 99.1]

最佳答案

来自 w3schools:

By default, the sort() method sorts the values as strings in alphabetical and ascending order.

This works well for strings ("Apple" comes before "Banana"). However, if numbers are sorted as strings, "25" is bigger than "100", because "2" is bigger than "1".

Because of this, the sort() method will produce an incorrect result when sorting numbers.

您可以通过提供“比较函数”来解决此问题。

http://www.w3schools.com/jsref/jsref_sort.asp

关于sort() 后 JavaScript 十进制数数组顺序不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28095226/

相关文章:

javascript - 我一直不得不根据我是在本地主机上开发还是推送到服务器来更改 window.location.href

javascript - 使用 JS 创建 url 实例

javascript - 密码确认和密码相同,但验证仍然触发 React 组件中的 JOI

arrays - 如何在 matlab 中使用预分配数组中的零?

java - 当字符串不为空或空时执行

c# - 带有通用参数的 dotnet .net core 2 OrderBy/OrderByDescending

javascript - 通过 css 去除所有悬停效果

arrays - Swift 中的构造函数?

java - 在每个 JTextArea 中显示迭代

java - 如何将排序结果保存到模型中