方法一:将数组的length设置为0;
const arr = [ 1, 2, 3, 4, 5 ];
arr.length = 0;
后果:这种方法不会改变原始数组引用。这意味着,如果使用赋值运算符(=)将一个数组引用分配给另一个数组引用,则在一个数组上应用此方法也会清除另一个数组引用。
方法二:分配对新数组的引用;
let arr = [ 1, 2, 3, 4, 5 ];
arr = [];
示例:
let hisArray = [ 'Some', 'thing' ];
let herArray = [ 'blog', 'dot', 'green', 'roots', 'dot', 'info', ' ',
'blog', 'dot', 'green', 'roots', 'dot', 'info', ' ',
'blog', 'dot', 'green', 'roots', 'dot', 'info', ' ',
'blog', 'dot', 'green', 'roots', 'dot', 'info', ' ',
'blog', 'dot', 'green', 'roots', 'dot', 'info', ' ',
'blog', 'dot', 'green', 'roots', 'dot', 'info', ' ',
'blog', 'dot', 'green', 'roots', 'dot', 'info', ' ',
'blog', 'dot', 'green', 'roots', 'dot', 'info', ' ',
'blog', 'dot', 'green', 'roots', 'dot', 'info', ' ',
'blog', 'dot', 'green', 'roots', 'dot', 'info', ' ',
'blog', 'dot', 'green', 'roots', 'dot', 'info', ' ',
'blog', 'dot', 'green', 'roots', 'dot', 'info'
];
herArray = hisArray;
console.time('Approach 2: new assignment');
hisArray = [];
console.timeEnd('Approach 2: new assignment');
console.group('Approach 2: Empty array by assigning a new empty Array []')
console.log('hisArray =>', hisArray);
console.log('herArray =>', herArray);
console.groupEnd();
输出:
Approach 2: new assignment: 0.005ms
Approach 2: Empty array by assigning a new empty Array []
hisArray => []
herArray => [ 'Some', 'thing' ]
后果:原始数组
hisArray
已更改,但是该数组的其他值herArray
仍然不变。
方法三:直到最后使用pop()
let someArray = [ 'blog', 'dot', 'green', 'roots', 'dot', 'info'];
console.time('Approach 3: pop()');
while(someArray.length > 0) {
someArray.pop();
}
console.timeEnd('Approach 3: pop()');
console.group('Approach 3: Use pop until death');
console.log('someArray => ', someArray);
console.groupEnd();
后果:随着数组中元素数量的增加,这种方法会使事情变得非常缓慢。所以在处理大型数据的时候不要用这种方法。