Anda dapat melakukan ini menggunakan .slice()
metode seperti:
arr.slice(0, -1); // returns [1,0]
Ini demo:
var arr = [1, 0, 2];
var newArr = arr.slice(0, -1); // returns [1,0]
console.log(newArr);
$('#div1').text('[' + arr + ']');
$('#div2').text('[' + newArr + ']');
<script src="http://code.jquery.com/jquery.min.js"></script>
<b>Original Array : </b>
<div id="div1"></div>
<br/>
<b>After slice(0, -1): </b>
<div id="div2"></div>
alih-alih melakukan:
arr.slice(-1); // returns [2]
Ini demo:
var arr = [1, 0, 2];
var newArr = arr.slice(-1); // returns [2]
console.log(newArr);
$('#div1').text('[' + arr + ']');
$('#div2').text('[' + newArr + ']');
<script src="http://code.jquery.com/jquery.min.js"></script>
<b>Original Array : </b>
<div id="div1"></div>
<br/>
<b>After slice(-1): </b>
<div id="div2"></div>
Penjelasan:-
Sekarang sintaks dasar Array.prototype.slice()
atau dalam slice()
metode singkat adalah:
arr.slice([begin[, end]])
Sini,
yang begin
parameter adalah nol berbasis indeks di mana ekstraksi dari array dimulai. Jadi, katakanlah berdasarkan contoh di atas jika kita melakukan sesuatu seperti
arr.slice(0) // returns [1,0,2]
itu akan mengembalikan semua elemen array dari awal urutan dari posisi 0 dan itu [1,0,2]
. Demikian pula halnya jika kita melakukannya
arr.slice(1) // returns [0,2]
itu akan kembali [0,2]
karena 0 ada di posisi 1 di sini dan semuanya setelah itu. Sekarang, dalam kasus Anda, Anda telah melewati indeks negatif yaitu, -1
sebagai parameter awal, yang menunjukkan offset dari akhir urutan. Jadi, slice(-1)
dalam kasus Anda mengekstrak elemen array yang terakhir dalam urutan dan itu adalah 2
( seperti yang telah kita lihat di demo di atas ).
Sekarang, mari kita bicara tentang end
parameter dalam slice()
sintaksis metode di sini. Sekali lagi ini adalah indeks berbasis nol di mana ekstraksi dari array berakhir. Jadi, katakanlah kita memiliki array seperti: -
var arr = [1, 0, 2, 5, 3, 9];
dan kami hanya ingin mendapatkan 2,5,3
elemen dalam array. Sekarang, posisi 2
dari mulai urutan adalah 2
dan untuk elemen terakhir 3
itu 4
. Kita perlu mengakhiri ekstraksi di sini posisi 5, karena kita perlu mendapatkan elemen sebelum posisi itu. Jadi, kami hanya akan mengimplementasikan slice()
metode seperti di sini
arr.slice(2, 5) // returns [2,5,3]
Dalam kasus Anda, kami telah menerapkan -1
sebagai parameter akhir, jadi kode kami seperti
arr.slice(0, -1) // returns [1,0]
Sebagai indeks negatif, end
menunjukkan offset dari akhir urutan. Jadi, slice(0,-1)
ekstrak elemen pertama melalui elemen kedua hingga terakhir dalam urutan. Jadi, kami mendapatkan output yang diinginkan. Kita juga bisa suka
arr.slice(0, 2) // returns [1,0]
kita akan mendapatkan output yang sama. Tapi, saya telah menggunakan di -1
sini sebagai lebih mudah diimplementasikan bahkan untuk array yang panjang seperti
[0,2,3,1,2,9,3,6,3,9,1,0,2,9,0,1,1,2,3,4,7,9,1]
Jika Anda hanya ingin menghapus elemen terakhir, Anda tidak ingin duduk & menghitung posisi 9 terakhir di sini dan yang suka arr.slice(0, 22)
. Anda kemudian dapat menerapkan logika indeks negatif di sini & lakukan
arr.slice(0, -1) // same result as arr.slice(0, 22)
Semoga ini bisa membantu!