为什么减少数组的长度会使最后一个元素未定义但长度不会改变?
您好,我是 javascript 新手。
我试图将数组的长度减少 1。
我这样做了,最后一个元素是undefined现在,但长度仍然是5。
var arr = [1, 2, 3, 4, 5];
arr.length = arr.length--;
console.log(arr);
console.log(arr.length);
回答
arr.length--将减少长度,1但会返回前一个 length,这意味着您将数组的长度减少 1,然后立即将前一个长度分配给arr.length,这意味着您将其改回五元素数组(但您已经删除了第五个元素,就是现在undefined。
如果你只想减少数组的长度,你可以arr.length--;单独使用。
var arr = [1, 2, 3, 4, 5];
arr.length--;
console.log(arr);
console.log(arr.length);