gpt4 book ai didi

javascript - 排列数组元素

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:19:14 27 4
gpt4 key购买 nike

我需要一种算法来对 Javascript 中的数组元素进行排序。

例子:我有一个数组如下:

[79, 5, 18, 5, 32, 1, 16, 1, 82, 13]

我需要按值对条目进行排名。所以 82 应该获得排名 179 排名 2 等。如果两个条目具有相同的值,它们将获得相同的排名,并且较低值的排名会提高。

因此对于这个数组,新的排名数组将是:

[2, 7, 4, 7, 3, 9, 5, 9, 1, 6] 

我该怎么做?

最佳答案

var arr = [79, 5, 18, 5, 32, 1, 16, 1, 82, 13];
var sorted = arr.slice().sort(function(a,b){return b-a})
var ranks = arr.map(function(v){ return sorted.indexOf(v)+1 });
console.log(ranks);

结果:

[2, 7, 4, 7, 3, 9, 5, 9, 1, 6]

如果你想与旧浏览器兼容,你可能需要 define a shim for indexOfmap (请注意,如果你想对非常大的数组非常快地执行此操作,你最好使用 for 循环并使用对象作为映射而不是 indexOf )。

关于javascript - 排列数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14834571/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com