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 相关文章推荐
Prototype源码浅析 Number部分
Jan 16 Javascript
jquery触发a标签跳转事件示例代码
Jul 21 Javascript
jquery阻止冒泡事件使用模拟事件
Sep 06 Javascript
jQuery is()函数用法3例
May 06 Javascript
jquery mobile的触控点击事件会多次触发问题的解决方法
May 08 Javascript
javascript中的return和闭包函数浅析
Jun 06 Javascript
jQuery插件windowScroll实现单屏滚动特效
Jul 14 Javascript
写给小白的JavaScript引擎指南
Dec 04 Javascript
在Mac OS上安装使用Node.js的项目自动化构建工具Gulp
Jun 18 Javascript
AngularJS监听路由的变化示例代码
Sep 23 Javascript
vue-router实现webApp切换页面动画效果代码
May 25 Javascript
JS通过位运算实现权限加解密
Aug 14 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
动漫定律:眯眯眼都是怪物!这些角色狠话不多~
2020/03/03 日漫
JS获取scrollHeight问题想到的标准问题
2007/05/27 Javascript
javascript预览上传图片发现的问题的解决方法
2010/11/25 Javascript
jquery ajax 简单范例(界面+后台)
2013/11/19 Javascript
setTimeout()递归调用不加引号出错的解决方法
2014/09/05 Javascript
JavaScript中操作Mysql数据库实例
2015/04/02 Javascript
JavaScript常见的五种数组去重的方式
2016/12/15 Javascript
JS瀑布流实现方法实例分析
2016/12/19 Javascript
AngularJS之页面跳转Route实例代码
2017/03/10 Javascript
JS简单获取当前日期时间的方法(如:2017-03-29 11:41:10 星期四)
2017/03/29 Javascript
mongoose中利用populate处理嵌套的方法
2017/05/26 Javascript
jquery与js实现全选功能的区别
2017/06/11 jQuery
Mac中安装nvm的教程分享
2017/12/11 Javascript
web前端vue之vuex单独一文件使用方式实例详解
2018/01/11 Javascript
基于vue.js 2.x的虚拟滚动条的示例代码
2018/01/23 Javascript
利用Vue的v-for和v-bind实现列表颜色切换
2020/07/17 Javascript
Vue中component标签解决项目组件化操作
2020/09/04 Javascript
vant-ui框架的一个bug(解决切换后onload不触发)
2020/11/11 Javascript
[02:39]DOTA2英雄基础教程 极限穿梭编织者
2013/12/05 DOTA
Python的Flask框架中web表单的教程
2015/04/20 Python
Python编程实现微信企业号文本消息推送功能示例
2017/08/21 Python
利用python3随机生成中文字符的实现方法
2017/11/24 Python
Python解析并读取PDF文件内容的方法
2018/05/08 Python
Python实现合并两个列表的方法分析
2018/05/28 Python
Python-while 计算100以内奇数和的方法
2019/06/11 Python
python 利用已有Ner模型进行数据清洗合并代码
2019/12/24 Python
Anaconda的安装及其环境变量的配置详解
2020/04/22 Python
李维斯德国官方网上商店:Levi’s德国
2016/09/10 全球购物
美津浓美国官网:Mizuno美国
2018/08/07 全球购物
意大利折扣和优惠券网站:Groupalia
2019/10/09 全球购物
质检部岗位职责
2013/11/11 职场文书
小学生元旦感言
2014/02/26 职场文书
应急处置方案
2014/06/16 职场文书
小学竞选班长演讲稿
2014/09/09 职场文书
阿甘正传观后感
2015/06/01 职场文书
贷款工作证明模板
2015/06/12 职场文书