从数组中删除第一个元素并返回减去第一个元素的数组


102

var myarray = ["item 1", "item 2", "item 3", "item 4"];

//removes the first element of the array, and returns that element.
alert(myarray.shift());
//alerts "item 1"

//removes the last element of the array, and returns that element.
alert(myarray.pop());
//alerts "item 4"

  1. 如何删除第一个数组但返回数组减去第一个元素
  2. 在我的示例中,"item 2", "item 3", "item 4"当我删除第一个元素时我应该得到

6
alert(array.slice(1))array.shift(); alert(array);
Thomas

2
@Thomas当我使用时myarray.shift()返回的"item 1"是我想要的返回"item 2", "item 3", "item 4"
Brownman Revival

请阅读我编写的完整代码,使用shift()
Thomas

1
如果您需要创建没有第一个元素的新数组,请使用slice。
Arnial

6
只是添加更多:)进行销毁:[,...myarray] = myarray;
Me.Name,2016年

Answers:


151

这应该删除第一个元素,然后您可以返回其余的元素:

var myarray = ["item 1", "item 2", "item 3", "item 4"];
    
myarray.shift();
alert(myarray);

正如其他人所建议的那样,您也可以使用slice(1);。

var myarray = ["item 1", "item 2", "item 3", "item 4"];
  
alert(myarray.slice(1));


27
请注意,slice(1) 它不会从数组中“删除第一个元素”。相反,它将创建一个数组,其中包含除第一个数组之外的所有其他值的浅表副本。
TJ Crowder

2
如果您有一个数组数组,对使用slice(1)很有用。
Flummox-别作恶

25

为什么不使用ES6?

 var myarray = ["item 1", "item 2", "item 3", "item 4"];
 const [, ...rest] = myarray;
 console.log(rest)


我喜欢这个主意,除了首先要使用的是常量。
giovannipds

3
可以使用const [,...rest] = myarray= O = D来解决
giovannipds

6

试试这个

    var myarray = ["item 1", "item 2", "item 3", "item 4"];

    //removes the first element of the array, and returns that element apart from item 1.
    myarray.shift(); 
    console.log(myarray); 

您尝试过这个吗?请参阅我的"item 1"
摘要

3

可以使用lodash在一行中完成_.tail

var arr = ["item 1", "item 2", "item 3", "item 4"];
console.log(_.tail(arr));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>


-1

您可以使用array.slice(0,1)//删除第一个索引并返回array。


2
不删除第一个索引,创建一个没有第一个元素的副本。原始数组未修改。
Emaborsa

同样,slice(0,1)将返回包含第一项的数组。相反,您需要调用slice(1)以获得包含除第一项以外的所有内容的数组,如公认的答案所示
schellmax
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.