我有一个谜题,
输入
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/