进行排序的数组键

zyn*_*nkn 1 javascript sorting

我有这个数组:

let arr = [ 0.125, 0.42857142857142855, 0.5, 0.5, 0 ];
Run Code Online (Sandbox Code Playgroud)

我想像这样按索引对数组的顺序进行排序:

[2, 3, 1, 0, 4];
Run Code Online (Sandbox Code Playgroud)

不是这样的:

[0.5, 0.5, 0.42857142857142855, 0.125, 0];
Run Code Online (Sandbox Code Playgroud)

我想获得排序的数组键。

Mah*_*Ali 6

您可以申请sort()Object.entries()数组。然后map()将其锁定。

let arr = [ 0.125, 0.42857142857142855, 0.5, 0.5, 0 ];

let res = Object.entries(arr).sort(([,v1],[,v2]) => v2 - v1).map(x => +x[0])
console.log(res)
Run Code Online (Sandbox Code Playgroud)