基本信息
文件名称:JavaScript中清空数组的几种方法.docx
文件大小:15.96 KB
总页数:3 页
更新时间:2025-05-30
总字数:约1.49千字
文档摘要

JavaScript中清空数组的几种方法

目录Array.prototype.splice()将length设置为0分配新的空数组length=0和Array=[]之间的差异?

Array.prototype.splice()

letcourse=[HTML,CSS,JavaScript]

course.splice(0)

console.log(course.length)//0

注意:此方法会影响其他引用。

letcourse=[HTML,CSS,JavaScript]

letother=course

course.splice(0)

course//[]

other//[]

由于splice()返回一个已删除项目的数组,您可以通过将结果分配给一个新变量来获取原始数组的副本:

letfoo=[hello,world]

//清空并创建一个foo的副本

letbar=foo.splice(0,foo.length)

console.log(foo)//[]

console.log(bar)//[hello,world]

将length设置为0

将数组的长度设置为零。

letcourse=[HTML,CSS,JavaScript]

course.length=0

console.log(course)//[]

分配新的空数组

letcourse=[HTML,CSS,JavaScript]

course=[]

console.log(course.length)//0

length=0和Array=[]之间的差异?

在大多数情况下,将变量重新分配给空数组是更好的选择。它比调整length属性更短、更明确。

但有时,你有一个数组是通过引用分配的,你想让它们保持引用。

假如我们有一个foo数组,我们还有一个bar变量,我将它的值设置为foo数组。

letfoo=[hello,world]

//添加引用

letbar=foo

如果我重新分配foo的值为[]空数组,bar变量仍指向分配给它的原始数组。

foo=[]

//bar不受影响

console.log(bar)//[hello,world]

foo=[]将一个新的数组的引用赋值给变量,其他引用并不受影响。这意味着以前数组的内容被引用的话将依旧存在于内存中,这将导致内存泄漏。

如果我改为foo.length=0,删除数组里的所有内容,也将影响到其他引用。

letfoo=[hello,world]

letbar=foo

foo.length=0

//`bar`受影响

console.log(bar)//[]

如果数组被声明为常量,则不能将其重新分配给[]。这时我们应该使用lenght=0。

constcourse=[HTML,CSS,JavaScript]

course=[]//会抛出异常:Assignmenttoconstantvariable

//使用length=0

course.length=0