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 相关文章推荐
Ajax,UTF-8还是GB2312 eval 还是execScript
Nov 13 Javascript
将json对象转换为字符串的方法
Feb 20 Javascript
一个JavaScript防止表单重复提交的实例
Oct 21 Javascript
基于javascript实现根据身份证号码识别性别和年龄
Jan 22 Javascript
json格式的javascript对象用法分析
Jul 04 Javascript
一个超简单的jQuery回调函数例子(分享)
Aug 08 Javascript
node.js程序作为服务并在windows下开机自启动(用forever)
Mar 29 Javascript
bootstrap table表格使用方法详解
Apr 26 Javascript
Vue-router结合transition实现app前进后退动画切换效果的实例
Oct 11 Javascript
VUE + UEditor 单图片跨域上传功能的实现方法
Feb 08 Javascript
详解解决Vue相同路由参数不同不会刷新的问题
Oct 12 Javascript
微信小程序转发事件实现解析
Oct 22 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
一个程序下载的管理程序(二)
2006/10/09 PHP
php项目打包方法
2008/02/18 PHP
IIS6+PHP5+MySQL5+Zend Optimizer+phpMyAdmin安装配置图文教程 2009年
2009/06/08 PHP
浅谈PHP命令执行php文件需要注意的问题
2016/12/16 PHP
jquery 操作两个select实现值之间的互相传递
2014/03/07 Javascript
js动态控制table的tr、td增加及删除的具体实现
2014/04/30 Javascript
JavaScript解析json格式数据简单示例
2014/12/09 Javascript
jQuery浏览器CSS3特写兼容实例
2015/01/19 Javascript
JavaScript自定义等待wait函数实例分析
2015/03/23 Javascript
jQuery+CSS3+Html5实现弹出层效果实例代码(附源码下载)
2016/05/16 Javascript
基于jQuery实现弹出可关闭遮罩提示框实例代码
2016/07/18 Javascript
jQuery模拟Marquee实现无缝滚动效果完整实例
2016/09/29 Javascript
Javascript动画效果(4)
2016/10/11 Javascript
vue.js 表格分页ajax 异步加载数据
2016/10/18 Javascript
js 点击a标签 获取a的自定义属性方法
2016/11/21 Javascript
详解jquery easyui之datagrid使用参考
2016/12/05 Javascript
基于Vue实现后台系统权限控制的示例代码
2017/08/29 Javascript
vue监听对象及对象属性问题
2018/08/20 Javascript
Nodejs使用Mongodb存储与提供后端CRD服务详解
2018/09/04 NodeJs
微信小程序自定义扫码功能界面的实现代码
2020/07/02 Javascript
python构建深度神经网络(续)
2018/03/10 Python
python调用java的jar包方法
2018/12/15 Python
python读取多层嵌套文件夹中的文件实例
2020/02/27 Python
Python 读取xml数据,cv2裁剪图片实例
2020/03/10 Python
浅谈anaconda python 版本对应关系
2020/10/07 Python
用Python实现职工信息管理系统
2020/12/30 Python
JAVA的事件委托机制和垃圾回收机制
2014/09/07 面试题
快餐公司创业计划书
2014/04/29 职场文书
预防煤气中毒方案
2014/06/16 职场文书
2014年应急工作总结
2014/12/11 职场文书
2014年测量员工作总结
2014/12/12 职场文书
2015年校务公开工作总结
2015/05/26 职场文书
小学毕业感言200字
2015/07/30 职场文书
2016社区平安家庭事迹材料
2016/02/26 职场文书
node快速搭建后台的实现步骤
2022/02/18 NodeJs
python保存图片的四个常用方法
2022/02/28 Python