尝试根据另一个数组的顺序排列数组
function Sort(old, new){
var temp = [];
for(var i=0; i<old.length; i++){
temp[i] = old[new[i]];
}
return temp;
}
是否可以在不使用temp[]
附加阵列的情况下实现相同的目标?
答案 0 :(得分:1)
首先,我想指出new
是一个关键字,应该作为变量名称来避免。
jQuery的map
会让你这样做,虽然很有可能在内部使用临时变量。关于该项目的好处是它将继续改进,即使该功能目前效率低下,以后可能会更高效,而不必以不同的方式调用它。
如果你不反对使用jQuery,那么这是一个单行:
var oldArray = ['a', 'b', 'c', 'd'],
newOrder = [1, 3, 0, 2];
oldArray = jQuery.map(newOrder, function(val) { return oldArray[val]; });
应将oldArray
重新排序为['b', 'd', 'a', 'c']
。但是,您仍然使用新的数组对象替换oldArray
。这真的取决于你想要完成的事情。我认为你不能完全避免临时变量,但是根据你是为了简单,速度效率,内存效率还是别的东西,有不同的解决方案。