hapus elemen pertama dari larik dan kembalikan larik dikurangi elemen pertama

107

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. Cara menghapus array pertama tetapi mengembalikan array dikurangi elemen pertama
  2. Dalam contoh saya, saya harus mendapatkan "item 2", "item 3", "item 4"ketika saya menghapus elemen pertama
Kebangkitan Brownman
sumber
6
alert(array.slice(1))atauarray.shift(); alert(array);
Thomas
2
@ Thomas ketika saya menggunakan myarray.shift()kembali "item 1"apa yang saya inginkan adalah kembali"item 2", "item 3", "item 4"
Kebangkitan
Silakan baca seluruh kode yang saya tulis, menggunakanshift()
Thomas
1
Jika Anda perlu membuat array baru tanpa elemen pertama, gunakan slice.
Arnial
6
Hanya untuk menambahkan satu lagi ke dalam campuran :) Dengan destructuring:[,...myarray] = myarray;
Me.Name

Jawaban:

154

Ini harus menghapus elemen pertama, dan kemudian Anda dapat mengembalikan yang tersisa:

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

Seperti yang disarankan orang lain, Anda juga bisa menggunakan slice (1);

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

Jesper Højer
sumber
28
Perhatikan bahwa slice(1) tidak "menghapus elemen pertama" dari array. Sebaliknya, itu membuat array baru dengan salinan dangkal dari semua nilai dari array kecuali yang pertama.
TJ Crowder
2
Berguna untuk menggunakan slice (1) jika Anda memiliki array array.
Flummox - jangan jahat SE
29

Mengapa tidak menggunakan ES6?

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

Tudor Morar
sumber
Saya suka ide ini, kecuali yang pertama ini akan menjadi konstanta yang tidak terpakai.
giovannipds
4
Dapat memperbaikinya menggunakan const [,...rest] = myarray= O = D
giovannipds
6

Coba ini

    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); 
Saya Geeker
sumber
apakah Anda mencoba yang ini? lihat pertanyaan saya yang diperbarui dengan potongan itu akan kembali"item 1"
Brownman Revival
3

Ini dapat dilakukan dalam satu baris dengan 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>

Penny Liu
sumber
-1

Anda dapat menggunakan array.slice (0,1) // Indeks pertama dihapus dan array dikembalikan.

Hassan Abbas
sumber
2
Indeks pertama tidak dihapus, salinan dibuat tanpa elemen pertama. Array asli tidak diubah.
Emaborsa
Selain itu, slice (0,1) akan mengembalikan array yang hanya berisi item pertama . Sebagai gantinya Anda perlu memanggil slice (1) untuk mendapatkan array yang berisi semua kecuali item pertama , seperti dalam jawaban yang diterima
schellmax