javascript - JavaScript 中的排序函数在某些情况下无法给出正确的输出?

标签 javascript arrays sorting

我尝试使用排序函数来排列项目,以便找到数字数组中的最大元素。 在 Chrome 中,检查元素并打开控制台。

>>var a = [1000, 1001, 857, 1]
>>undefined
>>a.sort()
>>(4) [1, 1000, 1001, 857] // no patern found.

为什么这些数字没有像其他案例那样正确排序:

>>var b = [13, 27, 18, 26];
>>undefined
>>b.sort()
>>(4) [13, 18, 26, 27] // here the numbers are in ascending order.

最佳答案

这是因为默认排序顺序将数组元素视为文本,而不是数字。

The default sort order is according to string Unicode code points.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

关于javascript - JavaScript 中的排序函数在某些情况下无法给出正确的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52295763/

相关文章:

python - 在 Python 中使用多个条件索引数组?

java - 使用比较器排序映射导致语法错误

objective-c - 为什么 NSArrayController "losing"在插入对象后是它的排序?

javascript - 如何使用 ES6 类运行 NodeJS?

javascript - 将否定前瞻添加到与正则表达式匹配的 URL

javascript - 如何在vuejs中的更改单选按钮上从父div添加/删除类

javascript - 在没有 TypeScript 的情况下使用 MobX 装饰器设置 ReactJS?

java - 如何正确地将值赋给对象数组?

python - 属性错误 : 'list' object has no attribute 'replace' during change array

php - 从 mysql 数据库中发出一个多词的排序