获取索引列表,以防您在javascript中对列表进行排序

时间:2019-12-10 15:16:25

标签: javascript

我想知道排序后列表中给定元素的新索引。

对python here也问了同样的问题,但是我喜欢用Javascript来做。

因此,基本上,函数的输入是列表[1,3,2],然后输出应该是[0,2,1]。

1 个答案:

答案 0 :(得分:1)

您可以获取数据数组的索引,然后按数据数组的值对索引进行排序。结果,您得到一个排序索引的数组。

如有必要,请为已排序的数据数组映射索引和适当的值。

var data = [1, 3, 2],
    indices = [...data.keys()];

indices.sort((a, b) => data[a] - data[b]);
data = indices.map(i => data[i]);

console.log(...indices);
console.log(...data);