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 beginparameter 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, -1sebagai 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 endparameter 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,3elemen dalam array. Sekarang, posisi 2dari mulai urutan adalah 2dan untuk elemen terakhir 3itu 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 -1sebagai parameter akhir, jadi kode kami seperti
arr.slice(0, -1) // returns [1,0]
Sebagai indeks negatif, endmenunjukkan 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 -1sini 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!