不使用 pop() 从数组中删除最后一个元素 [重复]

Posted

技术标签:

【中文标题】不使用 pop() 从数组中删除最后一个元素 [重复]【英文标题】:Remove last element from an array without using pop() [duplicate] 【发布时间】:2019-09-08 03:39:08 【问题描述】:

我是 javascript 新手。我想从数组中删除最后一个元素,而不使用 pop 方法。我试过使用长度属性,但我的控制台中没有定义。请帮忙!

function lastElement(array) 

   return array[array.length-1];



lastElement([3,4,5,6]);

【问题讨论】:

【参考方案1】:

需要先取元素,再递减数组长度。

顺便说一句,传递过来的参数不是数组。你需要一个数组来完成这个任务,因为如果你只接受参数,长度变化是没有意义的。

function lastElement(array) 
    var temp = array[array.length - 1];
    array.length = Math.max(0, array.length - 1); // prevent assigning negative values
    return temp;


var array = [3, 4, 5, 6];

console.log(lastElement(array));
console.log(lastElement(array));
console.log(lastElement(array));
console.log(lastElement(array));
console.log(lastElement(array));
console.log(array);

【讨论】:

非常感谢!它有效【参考方案2】:

使用slice()

function lastElement(array) 
   return array.slice(0,array.length-1);


lastElement(array);

【讨论】:

感谢您的帮助!切片是更好的选择 slice 不会改变数组,也不会改变数组的长度。它不会删除项目。 @NinaScholz 我知道,但由于它返回新数组,您可以分配它。谢谢你的观点。而且我认为作者没有以正确的方式提出问题 函数内部的赋值不会改变调用(外部)的数组,因为 ot 丢失了对象引用。你可以试试看。 @NinaScholz 我的意思是不在功能上。更清楚arr = lastElement(arr)

以上是关于不使用 pop() 从数组中删除最后一个元素 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

数组的pop,push,shift,unshift()分别是啥?

javascript获取数组最后一个元素(三种方法)

Vue 将被侦听的数组的变更方法进行了包裹

python pop() ,如何在Python的列表或数组中移除元素

php--------删除数组的第一个元素和最后一个元素

php中怎么删除数组的第一个元素和最后一个元素