最直接有效的方式是将length设为0:arr.length = 0,原地清空、引用不变;赋值空数组arr = []会创建新对象,可能造成引用不一致;应避免splice(0)、循环pop/shift等低效方式。

JavaScript 数组清空元素最直接有效的方式是将 length 属性设为 0。
方法一:设置 length = 0(推荐)
这是性能最好、最简洁的方式,原地修改数组,不创建新对象,所有元素立即被移除:
- arr.length = 0; —— 原数组被清空,引用不变,适合需保留数组变量引用的场景(如被其他代码或闭包持有)
- 操作后
arr.length变为 0,arr[0]等访问返回undefined
方法二:赋值空数组 []
写法简单:arr = [];
Java JDK 25 来自 OpenJDK 官方归档,版本为 JDK 25,本条下载地址已指向官方 Windows x64 zip 安装包直链,适合调试旧项目或兼容旧版 Java 运行环境。
- 创建了一个全新空数组,原数组对象若无其他引用会被垃圾回收
- ⚠️ 注意:如果该数组被其他变量、对象属性或函数闭包引用,那些引用仍指向旧数组,不会同步清空
- 适用于局部变量或确定无外部引用的场景
不推荐的方法及注意事项
以下方式效率低或有潜在问题:
- arr.splice(0) —— 虽然可行,但会返回被删除的元素数组,产生额外内存开销
- while(arr.length) arr.pop() 或 arr.shift() —— 循环操作,时间复杂度 O(n),远慢于直接设 length
-
arr = new Array() —— 同
[],也是重新赋值,存在引用丢失风险
实际使用建议
根据使用场景选择:
- 需要复用同一数组引用(如作为事件回调中的缓存数组、Vue/React 中响应式数组)→ 用
arr.length = 0 - 只是临时变量,后续不再依赖原引用 →
arr = []更直观 - 避免在循环中频繁清空大数组时选用低效方式,尤其注意不要误用
splice或循环删除
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










