array.length-=1 与 array.pop()
Posted
技术标签:
【中文标题】array.length-=1 与 array.pop()【英文标题】:array.length-=1 vs array.pop() 【发布时间】:2019-11-16 20:30:42 【问题描述】:我知道数组是某种对象,但它也有数字索引。而arr.length
是一个属性,它返回的不是数组中的元素个数,而是最后一个索引+1。我们可以使用递减length
或函数pop()
来删除最后一个元素。问题是:这些方法有什么区别?
【问题讨论】:
你得到带有pop
的项目...?长度变化是为了什么?
Is it an antipattern to set an array length in javascript? 和 Javascript array length modification implications
【参考方案1】:
.pop()
还返回最后一个元素(通常需要):
const last = array.pop();
// vs
const last = array[array.length - 1];
array.length -= 1;
现在您可以自己决定以上哪一项更具可读性...
【讨论】:
【参考方案2】:一些区别:
pop
返回您要删除的条目的值,分配给 length
不会。
pop
是一个方法调用;赋值给length
是一个赋值操作。
pop
在长度为 0
的数组上返回 undefined
并且不会更改数组。 array.length -= 1
在具有length
或0
的数组上会导致错误。
【讨论】:
以上是关于array.length-=1 与 array.pop()的主要内容,如果未能解决你的问题,请参考以下文章