我有一个数组
var itemsArr = ["blue", "wine", "orange", "yellow", "cyan"];
如何从数组的 END 到 FRONT 获取一定数量的数组元素?
预期产出:
示例 1:
//shift final 3 elements
var expected = ["orange", "yellow", "cyan", "blue", "wine"];
示例 2:
//shift final 2 elements
var expected = ["yellow", "cyan", "blue", "wine", "orange"];
这里有一种方法可以做到这一点:
JSBin 示例
var a = ["blue", "wine", "orange", "yellow", "cyan"];
function shifter(arr, n) {
var shifted = arr.splice(-n);
return shifted.concat(arr);
}
console.log(shifter(a, 3));
您可以使用与
Array#splice
和 Array#concat
结合使用。
var itemsArr = ["blue", "wine", "orange", "yellow", "cyan"];
itemsArr = itemsArr.splice(-3).concat(itemsArr);
document.write('<pre>' + JSON.stringify(itemsArr, 0, 4) + '</pre>');
itemsArr = itemsArr.splice(3).concat(itemsArr);
document.write('<pre>' + JSON.stringify(itemsArr, 0, 4) + '</pre>');
function moveToFront(x, noFromEnd){
if(noFromEnd > x.length){
alert("Immpossible");
}
else if(noFromEnd == x.length){
return x;
}
else if(noFromEnd < 0){
alert("immpossible")
}
else if(noFromEnd == 0){
return x;
}
else{
var returnArray = []
for(var i=(x.length-noFromEnd);i<x.length;i++){
returnArray.push(x[i])
}
for(var i=0; i<(x.length-noFromEnd); i++){
returnArray.push(x[i])
}
return returnArray;
}
}