将最终给定数量的元素移到阵列的前面
Shift final given number of elemts to front of array
我有一个数组
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;
}
}
相关文章:
- CKEditor Widget-阻止编辑可编辑元素本身
- 如何设置html元素填充的动画
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 使用clickToggle并在单击另一个元素时关闭元素
- 单击时将焦点更改为元素
- 当会话存储阵列中存在大量元素时,如何从中删除元素
- 选择具有重新成角度或成角度的嵌套阵列元素
- angularjs阵列拼接到另一个元素
- 将最终给定数量的元素移到阵列的前面
- angularjs移除阵列特定元素dosen'不起作用
- 显示关联阵列中所有元素的键和值
- 从图纸管理器叠加阵列中删除元素
- 在关联阵列的中间拼接一个元素
- 显示多个阵列中的元素
- 捕获阵列中ID为的元素上的单击
- 交错排列阵列元素
- 每个阵列元素的随机背景颜色
- 聚合物阵列作为元素中的成员
- 如何从Angularjs中的本地存储阵列中删除特定元素