fe-interview icon indicating copy to clipboard operation
fe-interview copied to clipboard

[js] 第173天 清空一个数组的方式有哪些?它们有什么区别?

Open haizhilin2013 opened this issue 6 years ago • 6 comments

第173天 清空一个数组的方式有哪些?它们有什么区别?

haizhilin2013 avatar Oct 05 '19 20:10 haizhilin2013

arr.length = 0;

coconilu avatar Oct 06 '19 09:10 coconilu

arr.splice(0,arr.length);

Liuwan12 avatar Oct 07 '19 23:10 Liuwan12

arr = [];

Via1877 avatar Oct 08 '19 01:10 Via1877

a = Array.of()

nyz123 avatar Oct 09 '19 09:10 nyz123

方法1

这是完美的,因为这实际上创建了一个全新的(空)数组 仅当您仅通过数组的原始变量A引用数组时才使用此选项。

let arr1 = [1,2,3]
let arr2 = arr1
arr1 = []
console.log(arr1,arr2) // [] [1,2,3]

方法2

通过将现有数组的长度设置为 0 来清除该数组 会影响元数组

const arr1 = [1,2,3]
const arr2 = arr1
arr1.length = 0
console.log(arr1,arr2) // [] []

方法3

.splice()函数将返回一个包含所有已删除项的数组,因此它实际上将返回原始数组的副本

const arr1 = [1,2,3]
const arr2 = arr1
arr1.splice(0,arr1.length)
console.log(arr1,arr2) // [] []

方法4

最慢的方法

const arr1 = [1,2,3]
const arr2 = arr1
while (arr1.length > 0) {
  arr1.pop()
}
console.log(arr1,arr2) // [] []

ZindexYG avatar May 29 '20 03:05 ZindexYG

arr = [] ; arr.length = 0 ;

xiaoqiangz avatar Aug 04 '22 03:08 xiaoqiangz