Це можна зробити за допомогою такого .slice()
методу, як:
arr.slice(0, -1); // returns [1,0]
Ось демонстрація:
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>
замість того, щоб робити:
arr.slice(-1); // returns [2]
Ось демонстрація:
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>
Пояснення: -
Тепер основним синтаксисом Array.prototype.slice()
або коротко slice()
методом є:
arr.slice([begin[, end]])
Ось
begin
параметр дорівнює нулю на основі індексу , при якому витяг з масиву починається. Отже, давайте скажемо, грунтуючись на наведеному вище прикладі, якщо ми робимо щось подібне
arr.slice(0) // returns [1,0,2]
він поверне всі елементи масиву з початку послідовності з позиції 0, і це є [1,0,2]
. Аналогічно, якщо і ми
arr.slice(1) // returns [0,2]
він би повернувся, [0,2]
оскільки 0 знаходиться в позиції 1 тут і все після цього. Тепер у вашому випадку ви передали від'ємний індекс, тобто -1
як параметр start, який вказує на зміщення від кінця послідовності. Отже, slice(-1)
у вашому випадку витягує останній один елемент масиву в послідовності, і це 2
( як ми вже бачили в наведеному вище демонстраційному демонстраційному описі ).
Тепер поговоримо про end
параметр у slice()
синтаксисі методу тут. Це знову нульовий індекс, на якому закінчується витяг з масиву. Отже, скажімо, у нас є масив типу: -
var arr = [1, 0, 2, 5, 3, 9];
і ми хочемо отримати просто 2,5,3
елементи в масиві. Тепер, позиція 2
від початку послідовності є, 2
і для останнього елемента 3
вона є 4
. Нам знадобиться закінчити видобуток тут позицією 5, як нам потрібно отримати елемент перед цією позицією. Отже, тут ми просто реалізуємо такий slice()
метод
arr.slice(2, 5) // returns [2,5,3]
У вашому випадку ми реалізували -1
як кінцевий параметр, тому наш код схожий
arr.slice(0, -1) // returns [1,0]
Як від'ємний індекс end
вказує зміщення від кінця послідовності. Отже, slice(0,-1)
витягує перший елемент через другий-останній елемент у послідовності. Отже, ми отримуємо бажаний вихід. Ми також можемо робити так, як
arr.slice(0, 2) // returns [1,0]
ми отримаємо той самий вихід. Але я -1
тут використав його як простіше втілити навіть для довгого масиву
[0,2,3,1,2,9,3,6,3,9,1,0,2,9,0,1,1,2,3,4,7,9,1]
Якщо ви просто хочете видалити останній елемент, ви не хочете сидіти та обчислювати позицію останніх 9 тут і робити подібне arr.slice(0, 22)
. Потім ви можете просто реалізувати логіку негативного індексу тут і робити
arr.slice(0, -1) // same result as arr.slice(0, 22)
Сподіваюся, це допомагає!