JavaScript中清空数组的三种方式


Posted in Javascript onMarch 22, 2017

方式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 = []; // 赋值为一个空数组以达到清空原数组

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

方式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);

测试结果:

  IE6 IE7 IE8 IE9 Firefox Safari Chrome
a.length=0 94 29 14 1 4 3 1
a=[] 0 0 0 0 0 0 0

以上结果可看到:方式3更快,效率更高。

从测试结果上看如果不保留原数组的其它属性Ext采用的方式更值得推荐。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
Javascript实现的分页函数
Feb 07 Javascript
jQuery AJAX回调函数this指向问题
Feb 08 Javascript
js限制textarea每行输入字符串长度的代码
Oct 31 Javascript
js修改地址栏URL参数解决url参数问题
Dec 15 Javascript
JavaScript在XHTML中的用法详解
Apr 11 Javascript
jQuery事件对象总结
Oct 17 Javascript
AngularJS 与百度地图的结合实例
Oct 20 Javascript
jQuery基于事件控制实现点击显示内容下拉效果
Mar 07 Javascript
vue.extend与vue.component的区别和联系
Sep 19 Javascript
vue封装一个简单的div框选时间的组件的方法
Jan 06 Javascript
JavaScript函数式编程(Functional Programming)声明式与命令式实例分析
May 21 Javascript
详解基于 Node.js 的轻量级云函数功能实现
Jul 08 Javascript
javascript实现多张图片左右无缝滚动效果
Mar 22 #Javascript
tab栏切换原理
Mar 22 #Javascript
js中的DOM模拟购物车功能
Mar 22 #Javascript
js+canvas实现动态吃豆人效果
Mar 22 #Javascript
JavaScript实现星星等级评价功能
Mar 22 #Javascript
discuz表情的JS提取方法分析
Mar 22 #Javascript
详解vue2.0组件通信各种情况总结与实例分析
Mar 22 #Javascript
You might like
thinkPHP框架可添加js事件的分页类customPage.class.php完整实例
2017/03/16 PHP
thinkphp5.1 文件引入路径问题及注意事项
2018/06/13 PHP
php实现往pdf中加数字签名操作示例【附源码下载】
2018/08/07 PHP
php7性能提升的原因详解
2019/10/13 PHP
Exjs 入门篇
2010/04/07 Javascript
toggle一个div显示或隐藏且可扩展成自定义下拉框
2013/09/12 Javascript
Eclipse去除js(JavaScript)验证错误
2014/02/11 Javascript
zeroclipboard 单个复制按钮和多个复制按钮的实现方法
2014/06/14 Javascript
javascript实现一个数值加法函数
2015/06/26 Javascript
纯javascript实现的小游戏《Flappy Pig》实例
2015/07/27 Javascript
微信小程序 wx.uploadFile无法上传解决办法
2016/12/14 Javascript
javascript实现秒表计时器的制作方法
2017/02/16 Javascript
JavaScript数据结构学习之数组、栈与队列
2017/05/02 Javascript
JavaScript中使用参数个数实现重载功能
2017/09/01 Javascript
vue登录路由验证的实现
2017/12/13 Javascript
关于vue的语法规则检测报错问题的解决
2018/05/21 Javascript
详解vue-cli项目中怎么使用mock数据
2018/05/29 Javascript
小程序实现长按保存图片的方法
2019/12/31 Javascript
js实现三角形粒子运动
2020/09/22 Javascript
python对数组进行反转的方法
2015/05/20 Python
在Python的Django框架中为代码添加注释的方法
2015/07/16 Python
Python动态语言与鸭子类型详解
2019/07/01 Python
Python3爬虫中Selenium的用法详解
2020/07/10 Python
python 录制系统声音的示例
2020/12/21 Python
python3.9.1环境安装的方法(图文)
2021/02/02 Python
一款纯css3实现的鼠标经过按钮特效教程
2014/11/09 HTML / CSS
西班牙汉普顿小姐:购买帆布鞋和太阳镜
2016/10/23 全球购物
Hotels.com印度:酒店预订
2019/05/11 全球购物
印刷工程专业应届生求职信
2013/09/29 职场文书
毕业生应聘求职信
2014/07/10 职场文书
搞笑的爱情检讨书
2014/10/01 职场文书
情人节单身感言
2015/08/03 职场文书
python 如何做一个识别率百分百的OCR
2021/05/29 Python
电脑关机速度很慢怎么办 提升电脑关机速度设置教程
2022/04/08 数码科技
【D4DJ】美少女DJ企划 动画将于明年冬季开播第2季
2022/04/11 日漫
JS前端使用canvas实现物体的点选示例
2022/08/05 Javascript