xóa phần tử đầu tiên khỏi mảng và trả về mảng trừ phần tử đầu tiên


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. Cách xóa mảng đầu tiên nhưng trả lại mảng trừ phần tử đầu tiên
  2. Trong ví dụ của tôi, tôi sẽ nhận được "item 2", "item 3", "item 4"khi xóa phần tử đầu tiên

6
alert(array.slice(1))hoặcarray.shift(); alert(array);
Thomas

2
@Thomas khi tôi sử dụng myarray.shift()lợi nhuận "item 1"những gì tôi muốn là trở lại"item 2", "item 3", "item 4"
Brownman Revival

Vui lòng đọc toàn bộ mã tôi đã viết, sử dụngshift()
Thomas

1
Nếu bạn cần tạo mảng mới không có phần tử đầu tiên thì hãy sử dụng slice.
Arnial

6
Chỉ cần thêm một người nữa để trộn :) Với destructuring:[,...myarray] = myarray;
Me.Name

Câu trả lời:


151

Thao tác này sẽ xóa phần tử đầu tiên và sau đó bạn có thể trả lại phần tử còn lại:

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

Như những người khác đã đề xuất, bạn cũng có thể sử dụng slice (1);

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


27
Lưu ý rằng slice(1) không "xóa phần tử đầu tiên" khỏi mảng. Thay vào đó, nó tạo ra một mảng mới với các bản sao cạn của tất cả các giá trị từ mảng ngoại trừ giá trị đầu tiên.
TJ Crowder

2
Hữu ích khi sử dụng slice (1) nếu bạn có một mảng các mảng.
Flummox - đừng trở thành ác nhân SE.

25

Tại sao không sử dụng ES6?

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


Tôi thích ý tưởng này, ngoại trừ việc đầu tiên nó sẽ là một hằng số không được sử dụng.
giovannipds

3
Có thể khắc phục điều đó bằng cách sử dụng const [,...rest] = myarray= O = D
giovannipds

6

Thử đi

    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); 

bạn đã thử cái này xem câu hỏi được cập nhật của tôi với đoạn nó sẽ trở lại?"item 1"
Brownman Revival

3

Điều này có thể được thực hiện trong một dòng với 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

Bạn có thể sử dụng array.slice (0,1) // Chỉ mục đầu tiên bị loại bỏ và mảng được trả về.


2
Chỉ mục đầu tiên không bị xóa, một bản sao được tạo mà không có phần tử đầu tiên. Mảng ban đầu không được sửa đổi.
Emaborsa

Ngoài ra, slice (0,1) sẽ trả về một mảng chỉ chứa mục đầu tiên . Thay vào đó bạn cần phải lát gọi (1) để có được một mảng chứa tất cả nhưng người đầu tiên mục, như trong câu trả lời được chấp nhận
schellmax
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.