对数组进行排序并返回一个指示符数组,该数组指示已排序的元素相对于原始元素(new)的位置

Sort array and return an array of indicies that indicates the position of the sorted elements with respect to the original elements (new)

本文关键字:数组 排序 元素 指示 相对于 位置 new 原始 一个 返回 指示符      更新时间:2023-09-26

我有这个数组

test = [3, 2, 2, 1];

我希望能够获得此数组

result = [3, 1, 2, 0]

这个想法与: Javascript:对数组进行排序并返回一个指示数组,该数组指示排序的元素相对于原始元素的位置

但是每次"测试"上有两个元素具有相同的值时,都会增加位置值。

您可以传递比较函数来排序:

var test = [3, 2, 2, 1];
var result = [];
for(var i = 0; i != test.length; ++i) result[i] = i;
result = result.sort(function(u,v) { return test[u] - test[v]; })
console.log(result) // [ 3, 1, 2, 0 ]