方式1、splice

?
1
2
3
var ary = [1,2,3,4];
ary.splice(0,ary.length);
console.log(ary); // 输出 [],空数组,即被清空了

详细说明:http://www.w3school.com.cn/jsref/jsref_splice.asp

方式2、length赋值为0

这种方式很有意思,其它语言如Java,其数组的length是只读的,不能被赋值。如

?
1
2
int[] ary = {1,2,3,4};
ary.length = 0;

Java中会报错,编译通不过。而JS中则可以,且将数组清空了,

?
1
2
3
var ary = [1,2,3,4];
ary.length = 0;
console.log(ary); // 输出 [],空数组,即被清空了

目前 Prototype中数组的 clear 和mootools库中数组的 empty 使用这种方式清空数组。

方式3、赋值为[]

?
1
2
var ary = [1,2,3,4];
ary = []; // 赋值为一个空数组以达到清空原数组

这里其实并不能说是严格意义的清空数组,只是将ary重新赋值为空数组,之前的数组如果没有引用在指向它将等待垃圾回收。

Ext库Ext.CompositeElementLite类的 clear 使用这种方式清空。

方式2 保留了数组其它属性,方式3 则未保留。很多人认为方式2的效率很高些,因为仅仅是给length重新赋值了,而方式3则重新建立个对象。经 测试 恰恰是方式3的效率高。测试代码:

?
1
2
3
4
5
6
7
8
9
var a = [];
for (var i=0; i< 1000000; i++){
    a.push(i);
}
var start = new Date();
//a = [];
a.length = 0;
var end = new Date();
alert(end - start);

测试结果:

以上结果可看到:方式3更快,效率更高。因此如果不保留原数组的其它属性Ext采用的方式更值得推荐。

原文:http://www.cnblogs.com/snandy/archive/2011/04/04/2005156.html

JavaScript中清空数组的三种方式相关推荐

  1. JAVA中将数组清空_JavaScript中清空数组的三种方式

    方式1,splice var ary = [1,2,3,4]; ary.splice(0,ary.length); console.log(ary); // 输出 [],空数组,即被清空了 方式2,l ...

  2. jq数组清空_JavaScript中清空数组的三种方式

    方式1,splice var ary = [1,2,3,4]; ary.splice(0,ary.length); console.log(ary); // 输出 [],空数组,即被清空了 方式2,l ...

  3. 【JavaScript】清空数组的三种方式

    方式1,splice var ary = [1,2,3,4]; ary.splice(0,ary.length); console.log(ary); // 输出 [],空数组,即被清空了 方式2,l ...

  4. 【day14】js中清空数组的三种方式

    方式1,splice var ary = [1,2,3,4]; ary.splice(0,ary.length); console.log(ary); // 输出 [],空数组,即被清空了 方式2,l ...

  5. javascript中清空数组的两种方式

    1,length赋0 var a=new Array(); a.length=0; 2 [] var a=new Array(); a=[];

  6. JavaScript 中清空数组的几种方法

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

  7. javaScript中创建数组的3种方式

    JS数组定义及详解 javascript如何定义数组? 直接上代码和截图 //javaScript中创建数组的3种方式 //方式1 var names = ["令狐冲", &quo ...

  8. 代码示例:Java中定义数组的三种方式

    在Java中,数组的定义有三种方式,其基本语法格式如下: 数组类型[] 数组名 = new 数组类型[数组长度]; 数组类型[] 数组名 = new 数组类型[]{数组元素0,数组元素1,...}; ...

  9. 【JS】JavaScript中创建数组的6种方式(代码示例合集)

    创建数组的6种方式 <!DOCTYPE html> <html lang="en"><head><meta charset="U ...

  10. javascript中定义事件的三种方式

    在javascript中,可以为某个元素指定事件,指定的方式有以下三种: 1.在html中,使用onclick属性 2.在javascript中,使用onclick属性 3.在javascipt中,使 ...

最新文章

  1. [原]对Linux环境下任务调度一点认识
  2. Python实现JSON反序列化类对象
  3. 2018第三季度总结
  4. DCMTK:将DICOM结构化报告文件的内容转换为XML格式
  5. 2021编程语言排行:C#飙升,Python蝉联榜首
  6. 一文说通Dotnet的委托
  7. 测试框架 如何测试私有方法_高效的企业测试–测试框架(5/6)
  8. 前端学习(2853):简单秒杀系统学习之页面事件
  9. UserInfoActivity用户图像修改和退出登录
  10. CSS开发过程中的20个快速提升技巧
  11. Oracle join多表查询
  12. jQuery 的 ajax
  13. 经典:从追MM谈Java的23种设计模式
  14. [Swift]LeetCode248.对称数 III $ Strobogrammatic Number III
  15. Wagtail 教程 3:引入 Bootstrap 4,Font Awesome,页面布局优化
  16. 制造企业年终仓库盘点有哪些好的方法
  17. CTF挑战赛-合天网安实验室
  18. 测试连接--ping (IP地址,网址,主机名)
  19. 跪求大神定制类似苹果助手管理软件
  20. 学习记录583@IDEA导入子模块

热门文章

  1. 浅谈单调队列优化dp
  2. Remove Duplicates from Sorted List解题报告
  3. 《深入理解计算机网络》读后小记 8、IP地址和子网
  4. 软件设计是怎样炼成的(3)——软件系统不是木桶型的
  5. 显示水晶报表的公用类
  6. 简单使用Idea创建三层架构项目和数据库连接(使用原生ajax进行访问+ajax)
  7. java字符串类型和时间类型的转换
  8. vue移动端,点击微信授权登录
  9. Linux下yum配置及相关问题
  10. 编译器错误不能找到元数据文件