javascript - 如何获取数组中已排序值的键

标签 javascript sorting

如果我有以下数组:[5, 1, -7, 3, 6, 8, 0, -1, -3]

通过排序我得到 [-7, -3, -1, 0, 1, 3, 5, 6, 8]

很好,但我想要的是排序后数组的键。 这个:[2, 8, 7, 6, 1, 3, 0, 4, 5]

我尝试了以下使用插入排序的方法,但这当然是错误的。

var arr = [5, 1, -7, 3, 6, 8, 0, -1, -3];
keys = new Array(arr.length);
for(var j = 1; j < arr.length; j++) {
    key = arr[j];
    var i = j - 1;
    while(i >= 0 && arr[i] > key) {
        keys[i+1] = i;
        i--;
    }
    arr[i+1] = key;
    keys[i+1] = j;
}

我走在正确的轨道上吗?你能帮我吗:)

最佳答案

试试本页描述的那种东西

http://www.webdotdev.com/nvd/content/view/878/ .

基本上,使数组中的每个项目成为具有两个属性(排序键及其在数组中的索引)的对象,然后按键对它们进行排序。

关于javascript - 如何获取数组中已排序值的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6543201/

相关文章:

java - 具有指定 z 索引值的最佳渲染绘制顺序函数

JavaScript 正则表达式 : Only matching the last pattern

javascript - 错误 : _. get 不是函数

javascript - 当 div 通过切换打开时自动向下滚动页面

c++ - 插入排序 > 通过引用传递的数组中不可变值的问题

arrays - 合并排序如何处理长度为 N 的数组?

java - 按值对象属性对 LinkedHashMap 键集进行排序

C 两个链表的追加和排序

javascript - 通过文本文件在 Html <marquee> 标签中填充文本

javascript - 将变量插入 URL