在javascript里面清空数组的方法(并不是全部)

方法一:将数组的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();

后果:随着数组中元素数量的增加,这种方法会使事情变得非常缓慢。所以在处理大型数据的时候不要用这种方法。

猜你喜欢

转载自blog.csdn.net/baidu_39043816/article/details/108575700