尝试根据另一个数组的顺序排列一个数组
function Sort(old, new){
var temp = [];
for(var i=0; i<old.length; i++){
temp[i] = old[new[i]];
}
return temp;
}
是否可以在不使用temp[]
额外数组的情况下实现相同的效果?
尝试根据另一个数组的顺序排列一个数组
function Sort(old, new){
var temp = [];
for(var i=0; i<old.length; i++){
temp[i] = old[new[i]];
}
return temp;
}
是否可以在不使用temp[]
额外数组的情况下实现相同的效果?
首先,我想指出,这new
是一个可能应该避免作为变量名的关键字。
jQuerymap
将允许您这样做,尽管很有可能在内部使用临时变量。该项目的好处是它将继续改进,即使该功能目前效率低下,以后也可能会更有效,而不必以不同的方式调用它。
如果您不反对使用 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
为新的数组对象。这实际上取决于您要完成的工作。我认为您无法完全避免临时变量,但根据您是为了简单、速度效率、内存效率还是其他原因,有不同的解决方案。