我有下面的数组。
var arr = [1,0,2];
我想删除最后一个元素,即2。
我使用了arr。slice(-1);但它并没有删除值。
我有下面的数组。
var arr = [1,0,2];
我想删除最后一个元素,即2。
我使用了arr。slice(-1);但它并没有删除值。
当前回答
var a = [1,2,3,4,5,6];
console.log(a.reverse().slice(1).reverse());
//Array(5) [ 1, 2, 3, 4, 5 ]
其他回答
你需要这样做,因为slice不会改变原始数组。
arr = arr.slice(0, -1);
如果你想改变原始数组,你可以使用splice:
arr.splice(-1, 1);
或者流行:
arr.pop();
值得注意的是,slice都将返回一个新数组,而.pop()和.splice()将改变现有数组。
如果您喜欢使用链式命令样式处理数据集合,那么您将非常希望在此类情况下使用slice。
例如:
myArray = [1,2,3,4,5,6,7,8,9,10]; var newArrayOfThings = myArray .filter(x => x > 5) //只有大的东西 .slice(0, -1) //删除最后一项!Slice(-1)将给出第一个元素 .map(x => '数字是:${x} ')
它可能需要更多的混乱和变量管理,用“pop”做同样的事情,因为不像map, filter等,你不会得到一个新的数组。
push也是一样,它将一个元素添加到数组的末尾。你最好使用concat,因为它可以让你保持流动。
myArray = [1,2,3,4,5,6,7,8,9,10]; var newArrayOfThings = myArray .filter(x => x > 5) //只有大的东西 .slice(-1) //去掉"10" .concat([100]) //使用concat时,必须传递一个数组 .map(x => ' number is: ${x} ') //映射到一组字符串
使用splice(startPosition, deleteCount)
array.splice(-1)
Var数组= ['abc','def','ghi','123']; Var remove = array.splice(-1);/ /最后一项 Console.log ('array:', array); Console.log ('removed:', removed);
在你的用例中使用下面的代码:
var arr = [1,2,3,4];
arr.pop() //returns 4 as the value
arr // value 4 is removed from the **arr** array variable
只是一张便条。当执行pop()函数时,即使该行返回了弹出的项,原始数组也会受到影响,弹出的元素也会被删除。
你可以简单地使用arr.pop()
这将删除数组的最后一个条目。
var arr = [1,0,2];
var popped = arr.pop();//Now arr = [1,0] & popped = 2