Предположим, у меня есть массив Javascript, например:
var test = ['b', 'c', 'd', 'a'];
Я хочу отсортировать массив.Очевидно, что я могу просто сделать это для сортировки массива:
test.sort(); //Now test is ['a', 'b', 'c', 'd']
Но что мне действительно нужно, так это массив индексов, который указывает положение отсортированных элементов относительно исходных элементов.Я не совсем уверен, как это сформулировать, поэтому, возможно, именно поэтому у меня возникают проблемы с выяснением, как это сделать.
Если бы такой метод назывался sortIndices (), то я бы хотел:
var indices = test.sortIndices();
//At this point, I want indices to be [3, 0, 1, 2].
'a' было в позиции 3, 'b' было в 0, 'c'был в 1 и 'd' был 2 в исходном массиве.Следовательно, [3, 0, 1, 2].
Одним из решений было бы отсортировать копию массива, а затем циклически перебрать отсортированный массив и найти положение каждого элемента в исходном массиве.Но это кажется неуклюжим.
Существует ли существующий метод, который делает то, что я хочу?Если нет, как бы вы написали метод, который делает это?