видалити перший елемент з масиву і повернути масив мінус перший елемент


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);
Томас

2
@Thomas, коли я використовую, myarray.shift()повертає "item 1"те, що я хочу, це повернення"item 2", "item 3", "item 4"
Brownman Revival

Будь ласка, прочитайте весь код, який я написав, використовуючиshift()
Томас

1
Якщо вам потрібно створити новий масив без першого елемента, використовуйте фрагмент.
Арніал

6
Просто щоб додати ще одну до суміші :) З деструктуризацією:[,...myarray] = myarray;
Я. Ім'я

Відповіді:


151

Це повинно видалити перший елемент, а потім ви можете повернути решту:

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

Як припускали інші, ви також можете використовувати фрагмент (1);

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


27
Зверніть увагу, що slice(1) це не "видаляє перший елемент" із масиву. Натомість він створює новий масив з неглибокими копіями всіх значень із масиву, крім першого.
TJ Crowder

2
Корисно використовувати фрагмент (1), якщо у вас є масив масивів.
Flummox - не будь злим SE

25

Чому б не використовувати ES6?

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


Мені ця ідея подобається, за винятком того, що спочатку це буде невикористана константа.
Джованніпдс

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"
Brownman Revival

3

Це можна зробити в один рядок з лодашем _.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) // Перший індекс видаляється, а масив повертається.


2
Індекс FIrst не видаляється, копія створюється без першого елемента. Вихідний масив не змінено.
Емаборса

Також фрагмент (0,1) поверне масив, що містить лише перший елемент . Натомість вам потрібно викликати slice (1), щоб отримати масив, що містить усі елементи, крім першого , як у прийнятій відповіді
schellmax
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.