javascript - 按另一个数组中指定的索引对数组进行排序,最佳算法

标签 javascript algorithm

我有一个谜题,

输入

var a = ['a', 'b', 'c', 'd'],
    b = [1, 0, 3, 2];

输出

['b', 'a', 'd', 'c']

我的解决方案是这样的

function _sort(array, rules) {
  var i, len = rules.length, res = []

  if (array.length !== len) {
    return null; 
  }

  for (i = 0; i < len; i++) {
    res[rules[i]] = array[i];
  }

  return res;
}

如何改进这个算法?

最佳答案

你可以这样做:

var a = ['a', 'b', 'c', 'd'],
    b = [1, 0, 3, 2];

function mySort(array, rules) {
    var sorted = [];

    for (var i=0; i< rules.length; i++) {
        sorted[rules[i]] = array[i];
    }

    return sorted;
}

mySort(a, b);

> ["b", "a", "d", "c"]

关于javascript - 按另一个数组中指定的索引对数组进行排序,最佳算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25124357/

相关文章:

algorithm - 组合 "products"形成促销

javascript - Angular Material : Get value out of form

javascript - 更改嵌套子菜单 CSS 的功能不起作用(jQuery)

Python保持排序数据的最有效方法

algorithm - Ford-Fulkerson在具体问题中如何实现?

python - 如何在恒定大小的 block 中拆分可迭代

javascript - 在 Javascript 中从数组创建列表对象

javascript - 如何更改谷歌地图点以在悬停时弹出?

javascript - 字体大小计算错误

java - 如何比 Newton Raphson 更有效地计算 Big Decimal 的平方根?