如何在 JavaScript 中将数组向上移动 4 个位置?
我有以下字符串数组:
var array1 = ["t0","t1","t2","t3","t4","t5"];
我需要一个将 "array1" 转换成以下结果的函数:// Note how "t0" moves to the fourth position for example
var array2 = ["t3","t4","t5","t0","t1","t2"];
提前感谢。
如何在 JavaScript 中将数组向上移动 4 个位置?
我有以下字符串数组:
var array1 = ["t0","t1","t2","t3","t4","t5"];
我需要一个将 "array1" 转换成以下结果的函数:// Note how "t0" moves to the fourth position for example
var array2 = ["t3","t4","t5","t0","t1","t2"];
提前感谢。
array1 = array1.concat(array1.splice(0,3));
在Firebug中运行以下代码以进行验证
var array1 = ["t0","t1","t2","t3","t4","t5"];
console.log(array1);
array1 = array1.concat(array1.splice(0,3));
console.log(array1);
得到的结果为
["t0", "t1", "t2", "t3", "t4", "t5"]
["t3", "t4", "t5", "t0", "t1", "t2"]
function reorderArray(arr, startIndex, howMany) { return arr.concat(arr.splice(startIndex,howMany)); }
需要进行错误检查 :) - Russ Camfunction shiftArray(theArray, times) {
// roll over when longer than length
times = times % theArray.length;
var newArray = theArray.slice(times);
newArray = newArray.concat(theArray.slice(0, times));
return newArray;
}
var array1 = ["t0","t1","t2","t3","t4","t5"];
var array2 = shiftArray(array1, 3);
alert(array2); // ["t3","t4","t5","t0","t1","t2"]
var array2 = array1.slice(0);
for (var i = 0; i < 3; i++) {
array2.push(array2.shift());
}
另一种方法是将以下代码粘贴到大型Firebug控制台中以确认其有效性:
var a = [0, 1, 2, 3, 4, 5];
for (var i = 0; i < 3; i++) {
a.unshift(a.pop());
}
// the next line is to show it in the Firebug console; variable "a" holds the array
a.toString(",");