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 相关文章推荐
JS常用字符串处理方法应用总结
May 22 Javascript
浅谈JavaScript Math和Number对象
Jan 26 Javascript
深入理解JavaScript系列(36):设计模式之中介者模式详解
Mar 04 Javascript
JavaScript原生对象之String对象的属性和方法详解
Mar 13 Javascript
Jquery中$.post和$.ajax的用法小结
Apr 28 Javascript
Bootstrap中的Dropdown下拉菜单更改为悬停(hover)触发
Aug 31 Javascript
javascript中的try catch异常捕获机制用法分析
Dec 14 Javascript
jQuery加密密码到cookie的实现代码
Apr 18 jQuery
详解Vue爬坑之vuex初识
Jun 14 Javascript
如何使用 vue + d3 画一棵树
Dec 03 Javascript
Vue 电商后台管理项目阶段性总结(推荐)
Aug 22 Javascript
浅谈react useEffect闭包的坑
Jun 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
二进制交叉权限微型php类分享
2014/02/07 PHP
destoon调用自定义模板及样式的公告栏
2014/06/21 PHP
PHP高手需要要掌握的知识点
2014/08/21 PHP
js获取url参数的使用扩展实例
2007/12/29 Javascript
JQuery 实现的页面滚动时浮动窗口控件
2009/07/10 Javascript
JS 的应用开发初探(mootools)
2009/12/19 Javascript
JAVASCRIPT模式窗口中下载文件无法接收iframe的流
2013/10/11 Javascript
不到30行JS代码实现Excel表格的方法
2014/11/15 Javascript
Javascript 拖拽雏形(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
win7下安装配置node.js+express开发环境
2015/12/06 Javascript
javascript点击按钮实现隐藏显示切换效果
2016/02/03 Javascript
Bootstrap中的表单验证插件bootstrapValidator使用方法整理(推荐)
2016/06/21 Javascript
微信小程序 动态修改页面数据及参数传递过程详解
2019/09/27 Javascript
[45:46]2014 DOTA2国际邀请赛中国区预选赛5.21 HGT VS DT
2014/05/23 DOTA
python中正则表达式的使用详解
2014/10/17 Python
用Python的Django框架完成视频处理任务的教程
2015/04/02 Python
Pycharm代码无法复制,无法选中删除,无法编辑的解决方法
2018/10/22 Python
Pytorch实现GoogLeNet的方法
2019/08/18 Python
python-视频分帧&amp;多帧合成视频实例
2019/12/10 Python
xadmin使用formfield_for_dbfield函数过滤下拉表单实例
2020/04/07 Python
python实现mean-shift聚类算法
2020/06/10 Python
使用keras实现Precise, Recall, F1-socre方式
2020/06/15 Python
英国电动工具购买网站:Anglia Tool Centre
2017/04/25 全球购物
超级英雄、电影和电视、乐队和音乐T恤:Loud Clothing
2019/09/01 全球购物
洗发露广告词
2014/03/14 职场文书
《骑牛比赛》教后反思
2014/04/22 职场文书
债务授权委托书范本
2014/10/17 职场文书
毕业生班级鉴定评语
2015/01/04 职场文书
担保书格式
2015/01/20 职场文书
社会实践活动总结格式
2015/05/11 职场文书
公司宣传语大全
2015/07/13 职场文书
班主任工作经验交流会总结
2015/11/02 职场文书
高中班主任培训心得体会
2016/01/07 职场文书
描写九月优美句子(39条)
2019/09/11 职场文书
导游词之韩国济州岛
2019/10/28 职场文书
简单实现一个手持弹幕功能+文字抖动特效
2021/03/31 HTML / CSS