首页 > 解决方案 > 如何使用 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,而不必编写自己的排序函数。

谢谢!

标签: javascriptarrayssortingduplicates

解决方案


您需要减去这两个值。

//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))


推荐阅读