建立映射即可
-
排序并去重:首先将数组进行排序,得到升序排列的唯一元素。
-
映射排名:为每个唯一的元素分配一个排名值(从
1开始递增)。 -
构建结果:最后遍历原数组,按照每个元素在排序后数组中的排名,构建最终的排名数组。
var arrayRankTransform = function (arr) {
let sorted = [...new Set(arr)].sort((a, b) => a - b)
let map = new Map()
for (let i = 0; i < sorted.length; ++i) {
map.set(sorted[i], i + 1)
}
return arr.map(el => map.get(el))
};