順位付け?
配列の値を並び替えすることはありましたが、順位付けする方法は??となり、メモします。
const array = [ 90, 100, 50, 10, 80 ]
// 並び替え(降順)
const sorted = array.slice().sort((a,b) => b - a);
// 元配列と並び替えた配列を比較
const ranked = array.slice().map((item) => {
return sorted.indexOf(item) + 1
})
console.log(ranked);
// 出力
// [ 2, 1, 4, 5, 3 ]
余談
sortは破壊的変更になるので、それを防ぐ方法
const array = [ 90, 100, 50, 10, 80 ]
// 破壊的変更
array2 = array.sort((a,b) => b - a);
console.log(array); // [ 100, 90, 80, 50, 10 ]
console.log(array2); // [ 100, 90, 80, 50, 10 ]
// 防ぐ
array3 = array.slice().sort((a,b) => b - a);
console.log(array); // [ 90, 100, 50, 10, 80 ]
console.log(array3); // [ 100, 90, 80, 50, 10 ]
参考