Array.prototype.splice()
使用 Array.prototype.splice()
方法通过删除或替换现有元素来修改原数组的内容。
let course = ['HTML', 'CSS', 'JavaScript']
course.splice(0)
console.log(course.length) // 0
将 length 设置为 0
将数组的长度设置为零。
let course = ['HTML', 'CSS', 'JavaScript']
course.length = 0
console.log(course.length) // 0
分配新的空数组
将新的空数组分配给现有数组也会使数组为空。
let course = ['HTML', 'CSS', 'JavaScript']
course = []
console.log(course.length) // 0
pop/shift
循环判断数组的 length
属性,在每次循环都移除一个元素。
let course = ['HTML', 'CSS', 'JavaScript']
while(course.length > 0) {
course.pop()
// course.shift()
}
console.log(course) // 0
length = 0和 Array = [] 之间的差异?
-
list = []
将一个新的数组的引用赋值给变量,其他引用并不受影响。这意味着以前数组的内容被引用的话将依旧存在于内存中,这将导致内存泄漏。 -
list.length = 0
删除数组里的所有内容,也将影响到其他引用。
let foo = [1, 2, 3]
let bar = [1, 2, 3]
let foo2 = foo
let bar2 = bar
foo = []
bar.length = 0
console.log(foo, bar, foo2, bar2) // [] [] [1, 2, 3] []
可以看到,如果你复制了一个数组,如果你用 list.length = 0
清空了它的内容,复制的数组也会清空它的内容。
最后
你可以在 How do I empty an array in JavaScript? 和 Difference between Array.length = 0 and Array =[]? 查看更多详细的内容,比如这些方法的性能测试,进行讨论。
网友评论