JavaScript中使用delete删除数组会导致数组长度改变吗?

7 min read

是的,使用delete删除数组中的元素会改变数组的长度,但在数组中留下一个undefined占据被删除元素的位置。因此,delete适用于对象属性的删除,而推荐使用Array.prototype.splice()方法来删除数组中的元素,因为该方法可以保持数组的连续性并不会在被删除元素的位置留下undefined。例如:

const arr = [1, 2, 3, 4, 5];
// 使用splice方法删除数组中的第二个元素
arr.splice(1, 1);
// 输出数组 [1, 3, 4, 5]
console.log(arr);
// 输出数组长度 4
console.log(arr.length);