在数组T中,我们有值[e,t,m,a]。如何在单个循环中重新排序此数组以获得[t,e,a,m]?
答案 0 :(得分:3)
var T = ['e','t','m','a']
var ordered = order(T)
function order(T){
return [T[1],T[0],T[3],T[2]]
}
......或......
T.concat(T.splice(0,2)).reverse()
答案 1 :(得分:2)
我认为即使它的措辞很差,似乎没有意义,为什么你需要这样做,如果我正确地解读你的问题,这就是你要做的事情:
var goal = ['a','t','o','m','i','c'],
scramble = ['c', 't', 'm', 'a', 'o', 'i'],
index,
holder;
for (var i = 0, gl = goal.length; i < gl; i++) {
index = scramble.indexOf(goal[i]);
holder = scramble.splice(index, 1)[0];
scramble.splice(i, 0, holder);
}
alert(scramble); // -> a,t,o,m,i,c