从数组末尾删除第n个元素

时间:2018-03-07 18:59:37

标签: javascript arrays

我有一个这样的数组:

array = [1,2,3,4,5,6,7,8]

我希望删除例如最后4个值,以便我的数组成为: 数组= [1,2,3,4] 我使用了array.splice(array.length - 4,1),但它没有用。有什么想法吗?

4 个答案:

答案 0 :(得分:2)

您可以使用slice功能,如下所示:

.slice(0, -4)

此方法不会修改原始数组

//                                    +---- From 0 to the index = (length - 1) - 4,
//                                    |     in this case index 3.
//                                  vvvvv
var array = [1,2,3,4,5,6,7,8].slice(0, -4);
console.log(array);
.as-console-wrapper { max-height: 100% !important; top: 0; }

此方法修改原始数组

var originalArr = [1, 2, 3, 4, 5, 6, 7, 8];

//                     +---- Is optional, for your case will remove 
//                     |     the elements ahead from index 4.
//                     v
originalArr.splice(-4, 4);
console.log(originalArr);

//----------------------------------------------------------------------

originalArr = [1, 2, 3, 4, 5, 6, 7, 8];
//                  +---- Omitting the second param.
//                  |     
//                  v
originalArr.splice(-4);
console.log(originalArr);
.as-console-wrapper { max-height: 100% !important; top: 0; }

文档

答案 1 :(得分:1)

从列表末尾删除4个元素

var myList = [1,2,3,4,5,6,7,8];
var removed = myList.splice(-myList.length-4, 4);

https://jsfiddle.net/etuf28bj/4/

答案 2 :(得分:0)

C:\jenkins\jobs\**\

将从数组begin中删除0个元素,从数组结束中删除4个元素

答案 3 :(得分:0)

您还可以使用filter删除元素(它不会修改现有数组)



array = [1,2,3,4,5,6,7,8];
array1=array.filter((x,i)=>i<array.length-4);
console.log(array1);
&#13;
&#13;
&#13;

或者您可以使用splice(它会更改数组本身)

&#13;
&#13;
array = [1,2,3,4,5,6,7,8];
array.splice(-4);
console.log(array);
&#13;
&#13;
&#13;