您可以使用.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 作为开始参数,它表示距序列末尾的偏移量。因此,slice(-1) 在您的情况下提取序列中的最后一个数组元素,即2(我们已经在上面的演示中看到)。
现在,让我们在这里谈谈slice() 方法语法中的end 参数。它也是一个从零开始的索引,从数组中提取结束。所以,假设我们有一个像这样的数组:-
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)
希望对你有帮助!