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 15 Javascript
TBCompressor js代码压缩
Jan 05 Javascript
游览器中javascript的执行过程(图文)
May 20 Javascript
jquery写个checkbox——类似邮箱全选功能
Mar 19 Javascript
javascript实现时间格式输出FormatDate函数
Jan 13 Javascript
JS判断字符串变量是否含有某个字串的实现方法
Jun 03 Javascript
基于JavaScript实现自动更新倒计时效果
Dec 19 Javascript
基于ExtJs在页面上window再调用Window的事件处理方法
Jul 26 Javascript
layui: layer.open加载窗体时出现遮罩层的解决方法
Sep 26 Javascript
Vue.js中Line第三方登录api的实现代码
Jun 29 Javascript
Vue实现boradcast和dispatch的示例
Nov 13 Javascript
vue3不同环境下实现配置代理
May 25 Vue.js
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
雄兵连:天使彦天使彦为爱折翼,彦和炙心同时念动的誓言!
2020/03/02 国漫
ezSQL PHP数据库操作类库
2010/05/16 PHP
php进行支付宝开发中return_url和notify_url的区别分析
2014/12/22 PHP
php+mysql查询优化简单实例
2015/01/13 PHP
php实现的任意进制互转类分享
2015/07/07 PHP
[原创]php实现 data url的图片生成与保存
2016/12/04 PHP
URI、URL和URN之间的区别与联系
2006/12/20 Javascript
js实现双击图片放大单击缩小的方法
2015/02/17 Javascript
javascript验证身份证号
2015/03/03 Javascript
JQuery中Text方法用法实例分析
2015/05/18 Javascript
JavaScript的代码编写格式规范指南
2015/12/07 Javascript
JavaScript数组去重的两种方法推荐
2016/04/05 Javascript
利用angular.copy取消变量的双向绑定与解析
2016/11/25 Javascript
JavaScript基于activexobject连接远程数据库SQL Server 2014的方法
2017/07/12 Javascript
vue解决跨域路由冲突问题思路解析
2017/11/03 Javascript
javascript函数的节流[throttle]与防抖[debounce]
2017/11/15 Javascript
Vue 中可以定义组件模版的几种方式
2019/08/06 Javascript
element 中 el-menu 组件的无限极循环思路代码详解
2020/04/26 Javascript
vue 将多个过滤器封装到一个文件中的代码详解
2020/09/05 Javascript
django框架如何集成celery进行开发
2017/05/24 Python
Python之inspect模块实现获取加载模块路径的方法
2018/10/16 Python
python3 写一个WAV音频文件播放器的代码
2019/09/27 Python
python多线程实现同时执行两个while循环的操作
2020/05/02 Python
python新手学习可变和不可变对象
2020/06/11 Python
利用CSS3制作简单的3d半透明立方体图片展示
2017/03/25 HTML / CSS
纽约著名的服装辅料来源:M&J Trimming
2017/07/26 全球购物
英国游戏机和游戏购物网站:365games.co.uk
2018/06/18 全球购物
C,C++的几个面试题小集
2013/07/13 面试题
SQL里面如何插入自动增长序列号字段
2012/03/29 面试题
大学团支书的自我评价分享
2013/12/14 职场文书
医院实习介绍信
2014/01/12 职场文书
2014年教师党员公开承诺书
2014/05/28 职场文书
求职简历自荐信
2014/06/18 职场文书
身边的榜样活动方案
2014/08/20 职场文书
2014年新农村建设工作总结
2014/12/01 职场文书
MySQL查看表和清空表的常用命令总结
2021/05/26 MySQL