面试题get-2JavaScript如何快速高性能清空删除Array数组中的所有元素,并保持引用

514 阅读1分钟
var arr = [1,2,3,4,5];

方法一:直接赋值

arr=[];

将空数组直接赋值给变量 arr,新数组与原无引用关系。对新数组的操作不会影响原数组。

方法2: 设置 length

arr.splice(0, arr.length)

这种方法会返回删除的所有元素,并形一个新的数组,不过对性能没有影响,并将保持对数组的引用。

方法4: pop

while(arr.length > 0) {
    arr.pop();
}

性能较差。

pop() 方法用于删除并返回数组的最后一个元素。

用法:

arrayObject.pop();

返回值 arrayObject 的最后一个元素。

说明

pop() 方法将删除 arrayObject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值。如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值。

方法5: shift

while (arr.length > 0) {
  arr.shift();
}

这是性能最差的一种方法。

用法

shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。

语法 arrayObject.shift()

返回值

数组原来的第一个元素的值。

说明

如果数组是空的,那么 shift() 方法将不进行任何操作,返回 undefined 值。请注意,该方法不创建新数组,而是直接修改原有的 arrayObject。

提示和注释 注释:该方法会改变数组的长度。

提示:要删除并返回数组的最后一个元素,请使用 pop() 方法。