如何将任意数字列表转换为排名列表?
以下列数字为例:
1, 2, 3, 3, 6, 8, 8, 8, 9, 10, 10, 11
翻译为排名列表:
rank: value
1: 1
2: 2
3: 3
3: 3
4: 6
5: 8
5: 8
5: 8
6: 9
7: 10
7: 10
8: 11
有优雅的方法吗?
答案 0 :(得分:3)
你可以做到
let arr = [1, 2, 3, 3, 6, 8, 8, 8, 9, 10, 10, 11];
let idx = 0;
for(let i=0; i<arr.length; i++){
if(i>0 && arr[i] == arr[i-1])
console.log(idx);
else
console.log(++idx);
}
检查数组中的值是否等于前一个数组。如果是,那么等级将保持不变,否则增加等级