javascript - 如何使用 Array.prototype.sort() 对具有重复值的数组进行排序?
问题描述
我想使用Array.prototype.sort()对具有重复值的数组进行排序。
例如,如果我执行此[1, 2, 0, 1].sort((a, b) => a + b)
操作以实现按降序排列的数组,我将返回相同的数组[1, 2, 0, 1]
。
为什么会发生这种情况,如何使用 对这个数组进行排序Array.prototype.sort
?javascript 的数组排序对于通过重复值进行排序是不可靠的,还是我提供的函数没有进行正确的比较?我想使用来实现这一点Array.prototype.sort
,而不必编写自己的排序函数。
谢谢!
解决方案
您需要减去这两个值。
//ascending order
console.log([1, 2, 0, 1].sort((a, b) => a - b))
//descending order
console.log([1, 2, 0, 1].sort((a, b) => b - a))
推荐阅读
- linux - QT 维护工具在 Linux 上的文件路径位置是什么?
- python - Python:计算numpy数组中可变大小子数组的实例
- php - 如何更改 PHP 内置服务器上的文件扩展名处理?
- javascript - 从 php->mysql 中的 xml 深度节点
- android - 崩溃仅在 Android 8 中发生
- javascript - VS Code extension code unable to find JSON path
- oracle-apex - Oracle Apex 5.1.4 中的语言验证
- node.js - NetBeans 上的 WebApp 项目显示:“Node.js:缺少 node.js 源(在 NodeJsWebApplication 中)”
- python - Python没有从列表中删除元素
- telegram - Telegram user_id 的长度可以是多少?