相关疑难解决方法(0)

Javascript:对数组进行排序并返回一个指示数组,指示已排序元素相对于原​​始元素的位置

假设我有一个Javascript数组,如下所示:

var test = ['b', 'c', 'd', 'a'];
Run Code Online (Sandbox Code Playgroud)

我想对数组进行排序.显然,我可以这样做来排序数组:

test.sort(); //Now test is ['a', 'b', 'c', 'd']
Run Code Online (Sandbox Code Playgroud)

但我真正想要的是一个索引数组,指示排序元素相对于原​​始元素的位置.我不太清楚怎么说这个,所以也许这就是为什么我无法弄清楚如何去做.

如果这样的方法被称为sortIndices(),那么我想要的是:

var indices = test.sortIndices();
//At this point, I want indices to be [3, 0, 1, 2].
Run Code Online (Sandbox Code Playgroud)

'a'位于第3位,'b'位于0,'c'位于1,'d'是原始阵列中的2.因此,[3,0,1,2].

一种解决方案是对数组的副本进行排序,然后循环遍历排序的数组并找到原始数组中每个元素的位置.但是,这感觉很笨拙.

是否有现有方法可以满足我的需求?如果没有,您将如何编写一个执行此操作的方法?

javascript sorting indexing

36
推荐指数
5
解决办法
3万
查看次数

标签 统计

indexing ×1

javascript ×1

sorting ×1