untuk menghapus elemen pertama dan terakhir dalam array

102

Bagaimana cara menghapus elemen pertama dan terakhir dalam sebuah array?

Sebagai contoh:

var fruits = ["Banana", "Orange", "Apple", "Mango"];

Larik keluaran yang diharapkan:

["Orange", "Apple"]
Mohan Ram
sumber
9
ini terlihat seperti 'soft ball' untuk membuat tautan ke w3schools, Anda bahkan telah menggunakan elemen array yang sama. ;-)
Myster

Jawaban:

142
fruits.shift();  // Removes the first element from an array and returns only that element.
fruits.pop();    // Removes the last element from an array and returns only that element. 

Lihat semua metode untuk Array.


sumber
Lebih mudah dengan jQuery UImyArray.effect( "transfer", { item: 'first&&last', to: bin});
iConnor
3
Para downvoters yang terhormat, Anda mungkin ingin downvote Anda bermanfaat, jadi harap tambahkan komentar yang menjelaskan apa yang salah dengan jawabannya ..
3
Ini hanya akan mengembalikan nilai elemen yang dihapus (pertama atau terakhir), bukan array yang tersisa
Jubin Patel
@Rumah Hanya ingin memberi tahu Pengguna tentang pekerjaan fungsi yang sebenarnya. Saya mempertanyakan jawaban Anda.
Jubin Patel
2
Seperti Pengguna, gunakan fungsi ini sama seperti Anda menulisnya, itu pasti berfungsi sebagaimana mestinya sebagai elemen hapus, TAPI jika pengguna menulisnya return fruits.shift()HANYA akan mengembalikan elemen pertama dan kemudian menghapus dari array.
Jubin Patel
79

Membuat salinan dalam 1 tingkat.

fruits.slice(1, -1)

Lepaskan array asli.

Terima kasih kepada @Tim karena menunjukkan ralat ejaan.

Anurag
sumber
1
Saya pikir maksud Anda slice()daripada splice().
Tim Down
71
Mengiris buah jauh lebih baik daripada meletuskan atau menggeser buah.
Pettys
2
dengan peningkatan popularitas redux, javscript fungsional, dan hal-hal yang tidak dapat diubah, jawaban ini jauh lebih baik
nkint
17

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var newFruits = fruits.slice(1, -1);
console.log(newFruits); //  ["Orange", "Apple"];

Di sini, -1 menunjukkan elemen terakhir dalam array dan 1 menunjukkan elemen kedua.

Tripti Pant
sumber
Atau hanya fruits = fruits.slice(1,-1);jika Anda tidak perlu membuat variabel baru.
Hastig Zusammenstellen
9

Saya menggunakan metode sambatan.

fruits.splice(0, 1); // Removes first array element

var lastElementIndex = fruits.length-1; // Gets last element index

fruits.splice(lastElementIndex, 1); // Removes last array element

Untuk menghapus elemen terakhir juga Anda dapat melakukannya dengan cara ini:

fruits.splice(-1, 1);

Lihat Menghapus item terakhir dari larik untuk melihat lebih banyak komentar tentangnya.

Chinokao
sumber
4

push() menambahkan elemen baru ke akhir larik.
pop()menghapus elemen dari akhir array.

unshift() menambahkan elemen baru ke awal array.
shift()menghapus elemen dari awal array.

Untuk menghapus elemen pertama dari sebuah array arr, gunakan arr.shift()
Untuk menghapus elemen terakhir dari sebuah array arr, gunakanarr.pop()

Harunur Rashid
sumber
2

Anda dapat menggunakan Array.prototype.reduce () .

Kode:

const fruits = ['Banana', 'Orange', 'Apple', 'Mango'],
      result = fruits.reduce((a, c, i, array) => 0 === i || array.length - 1 === i ? a : [...a, c], []);

console.log(result);

Yosvel Quintero Arguelles
sumber
Keren untuk melihat pengurangan untuk menghapus item pertama dan terakhir!
Mohan Ram
1

Untuk menghapus elemen dari array cukup mudah lakukan hal berikut

let array_splited = [].split('/');
array_splited.pop()
array_splited.join('/')
Richie
sumber
1

Ini dapat dilakukan dengan lodash _.taildan _.dropRight:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
console.log(_.dropRight(_.tail(fruits)));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>

Penny Liu
sumber
0
var resident_array =  ["RC_FRONT", "RC_BACK", "RC_BACK"];
var remove_item = "RC_FRONT";
resident_array = $.grep(resident_array, function(value) {
            return value != remove_item;
    });
resident_array = ["RC_BACK", "RC_BACK"];
vikas sobat
sumber
Hapus elemen pertama dari array.
vikas pal
0

Katakanlah Anda memiliki daftar bernama array. Fungsi Splice () dapat digunakan untuk menambah dan menghapus item dalam larik tersebut dalam indeks tertentu, misalnya yang dapat berada di awal atau di akhir atau di indeks mana pun. Sebaliknya ada fungsi lain yang bernama shift () dan pop () yang mampu menghapus hanya item pertama dan terakhir dalam array.

Ini adalah Fungsi Shift yang hanya mampu menghapus elemen pertama dari array

var item = [ 1,1,2,3,5,8,13,21,34 ]; // say you have this number series 
item.shift(); // [ 1,2,3,5,8,13,21,34 ];

Fungsi Pop menghapus item dari larik pada indeks terakhirnya

item.pop(); // [ 1,2,3,5,8,13,21 ];

Sekarang hadir fungsi splice dimana Anda dapat menghapus item di indeks manapun

item.slice(0,1); // [ 2,3,5,8,13,21 ] removes the first object
item.slice(item.length-1,1); // [ 2,3,5,8,13 ] removes the last object 

Fungsi slice menerima dua parameter ( Indeks untuk memulai , jumlah langkah yang harus ditempuh );

Labib Hussain
sumber
-1

Anda menggunakan metode Fruits.shift () untuk menghapus elemen pertama. Fruits.pop () metode yang digunakan untuk menghapus elemen terakhir satu per satu jika Anda menggunakan klik tombol. Fruits.slice (posisi awal, hapus elemen) Anda juga menggunakan metode slice untuk menghapus elemen di tengah awal.

manoj chauhan
sumber
1
baca ini dan format jawaban Anda dengan benar meta.stackexchange.com/questions/22186/…
isuruAb
-1

Untuk menghapus elemen pertama dan terakhir dari array adalah dengan menggunakan built-in metode sebuah yaitu susunan shift()dan pop()yang fruits.shift()mendapatkan elemen pertama dari array sebagai "Pisang" sementara fruits.pop()mendapatkan elemen terakhir dari array sebagai "Mango". sehingga elemen array yang tersisa akan menjadi["Orange", "Apple"]

chisom okoye
sumber
2
jawaban yang Anda berikan sudah ada dalam pertanyaan ini: di sini dan di sini . Jika Anda merasa mereka membutuhkan lebih banyak penjelasan, silakan tinggalkan komentar di bawah jawaban yang Anda tidak puas.
Skandix
1
Memformat kode Anda akan membantu ( meta.stackexchange.com/questions/22186/… )! Selain itu, jawaban ini tampaknya identik dengan yang lain (mis. Stackoverflow.com/a/43327999/608312 ).
Jake Lee
Tercatat @JakeSteam
chisom okoye