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

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


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)


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

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>


-1

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


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.