JavaScript中清空数组的三种方法分享


Posted in Javascript onApril 07, 2011

方式1,splice

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

方式2,length赋值为0
这种方式很有意思,其它语言如Java,其数组的length是只读的,不能被赋值。如
int[] ary = {1,2,3,4}; 
ary.length = 0;

Java中会报错,编译通不过。而JS中则可以,且将数组清空了,
var ary = [1,2,3,4]; 
ary.length = 0; 
console.log(ary); // 输出 [],空数组,即被清空了

目前 Prototype中数组的 clear 和mootools库中数组的 empty 使用这种方式清空数组。  
方式3,赋值为[]
var ary = [1,2,3,4]; 
ary = []; // 赋值为一个空数组以达到清空原数组

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

测试结果:

JavaScript中清空数组的三种方法分享

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

Javascript 相关文章推荐
网站被黑的假象--ARP欺骗之页面中加入一段js
May 16 Javascript
jQuery基础知识filter()和find()实例说明
Jul 06 Javascript
新发现一个骗链接的方法(js读取cookies)
Jan 11 Javascript
jquery 提交值不为空的元素示例代码
May 10 Javascript
js实现在字符串中提取数字
Nov 05 Javascript
js实现右下角提示框的方法
Feb 03 Javascript
php常见的页面跳转方法汇总
Apr 15 Javascript
在JavaScript中使用对数Math.log()方法的教程
Jun 15 Javascript
js实现可折叠展开的手风琴菜单效果
Sep 07 Javascript
BootStrap 导航条实例代码
May 18 Javascript
JS常用的几种数组遍历方式以及性能分析对比实例详解
Apr 11 Javascript
React 组件间的通信示例
Jun 14 Javascript
使用滤镜设置透明导致 IE 6/7/8/9 解析异常的解决方法
Apr 07 #Javascript
javascript各浏览器中option元素的表现差异
Apr 07 #Javascript
IE6/7/8中Option元素未设value时Select将获取空字符串
Apr 07 #Javascript
我的javascript 函数链之演变
Apr 07 #Javascript
JavaScript中链式调用之研习
Apr 07 #Javascript
js中各浏览器中鼠标按键值的差异
Apr 07 #Javascript
javascript 单例/单体模式(Singleton)
Apr 07 #Javascript
You might like
php面向对象全攻略 (十四) php5接口技术
2009/09/30 PHP
定义php常量的详解
2013/06/09 PHP
php使用curl简单抓取远程url的方法
2015/03/13 PHP
微信公众号实现会员卡领取功能
2017/06/08 PHP
比较全面的event对像在IE与FF中的区别 推荐
2009/09/21 Javascript
javascript客户端解决方案 缓存提供程序
2010/07/14 Javascript
js取得url地址参数实例
2013/02/22 Javascript
javascript读写json示例
2014/04/11 Javascript
JavaScript设计模式之策略模式实例
2014/10/10 Javascript
AngularJS初始化过程分析(引导程序)
2014/12/06 Javascript
使用jquery菜单插件HoverTree仿京东无限级菜单
2014/12/18 Javascript
PHP实现的各种中文编码转换类分享
2015/01/23 Javascript
js密码强度检测
2016/01/07 Javascript
JS导出PDF插件的方法(支持中文、图片使用路径)
2016/07/12 Javascript
jQuery设置Easyui校验规则(推荐)
2016/11/21 Javascript
本地Bootstrap文件字体图标引入却无法显示问题的解决方法
2020/04/18 Javascript
Angular 2父子组件数据传递之@ViewChild获取子组件详解
2017/07/04 Javascript
你可能不知道的JSON.stringify()详解
2017/08/17 Javascript
javaScript实现复选框全选反选事件详解
2020/11/20 Javascript
vue 设置 input 为不可以编辑的实现方法
2019/09/19 Javascript
Python Web服务器Tornado使用小结
2014/05/06 Python
Python读取Excel的方法实例分析
2015/07/11 Python
python pprint模块中print()和pprint()两者的区别
2020/02/10 Python
详解python常用命令行选项与环境变量
2020/02/20 Python
Parts Express:音频、视频和扬声器的第一来源
2017/04/25 全球购物
大学自主招生自荐信范文
2014/02/26 职场文书
关于青春的演讲稿
2014/05/05 职场文书
教师敬业奉献模范事迹材料
2014/05/18 职场文书
优秀应届本科生求职信
2014/07/19 职场文书
毕业晚宴祝酒词
2015/08/11 职场文书
oracle表分区的概念及操作
2021/04/24 Oracle
正确使用MySQL update语句
2021/05/26 MySQL
详解Redis集群搭建的三种方式
2021/05/31 Redis
Pyqt5将多个类组合在一个界面显示的完整示例
2021/09/04 Python
教你快速构建一个基于nginx的web集群项目
2021/11/27 Servers
Spring事务管理下synchronized锁失效问题的解决方法
2022/03/31 Java/Android