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设置FieldSet展开与收缩
May 15 Javascript
用jQuery技术实现Tab页界面之二
Sep 21 Javascript
javascript面向对象之Javascript 继承
May 04 Javascript
基于jquery实现漂亮的动态信息提示效果
Aug 02 Javascript
基于jquery实现的鼠标拖拽元素复制并写入效果
Aug 23 Javascript
jQuery基础知识小结
Dec 22 Javascript
常用的JavaScript WEB操作方法分享
Feb 28 Javascript
深入理解JavaScript系列(27):设计模式之建造者模式详解
Mar 03 Javascript
两行代码轻松搞定JavaScript日期验证
Aug 03 Javascript
AngularJS入门教程引导程序
Aug 18 Javascript
教你快速搭建Node.Js服务器的方法教程
Mar 30 Javascript
easyUI使用分页过滤器对数据进行分页操作实例分析
Jun 01 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/02 日漫
《星际争霸重制版》兵种对比图鉴
2020/03/02 星际争霸
set_include_path在win和linux下的区别
2008/01/10 PHP
window+nginx+php环境配置 附配置搭配说明
2010/12/29 PHP
教你如何在CI框架中使用 .htaccess 隐藏url中index.php
2014/06/09 PHP
php+ajax实现的点击浏览量加1
2015/04/16 PHP
smarty模板判断数组为空的方法
2015/06/10 PHP
PHP微信支付实例解析
2016/07/22 PHP
Javascript valueOf 使用方法
2008/12/28 Javascript
jQuery源码分析-03构造jQuery对象-工具函数
2011/11/14 Javascript
javascript转换静态图片,增加粒子动画效果
2015/05/28 Javascript
学习JavaScript设计模式之迭代器模式
2016/01/19 Javascript
javascript自定义滚动条实现代码
2020/04/20 Javascript
浅谈Vue.js中ref ($refs)用法举例总结
2017/12/19 Javascript
VUE+Element UI实现简单的表格行内编辑效果的示例的代码
2018/10/31 Javascript
js时间戳转yyyy-MM-dd HH-mm-ss工具类详解
2019/04/30 Javascript
Vue项目打包压缩的实现(让页面更快响应)
2020/03/10 Javascript
vue项目中自定义video视频控制条的实现代码
2020/04/26 Javascript
prettier自动格式化去换行的实现代码
2020/08/25 Javascript
用python统计代码行的示例(包括空行和注释)
2018/07/24 Python
python 用for循环实现1~n求和的实例
2019/02/01 Python
pyqt5让图片自适应QLabel大小上以及移除已显示的图片方法
2019/06/21 Python
pandas条件组合筛选和按范围筛选的示例代码
2019/08/26 Python
Kears+Opencv实现简单人脸识别
2019/08/28 Python
快速解决docker-py api版本不兼容的问题
2019/08/30 Python
python实现在多维数组中挑选符合条件的全部元素
2019/11/26 Python
手机配件第一品牌:ZAGG
2017/05/28 全球购物
澳大利亚首屈一指的鞋类品牌:Tony Bianco
2018/03/13 全球购物
Dockers鞋官网:Dockers Shoes
2018/11/13 全球购物
机械专业应届生求职信
2013/12/12 职场文书
党建工作汇报材料
2014/12/24 职场文书
高中生综合素质自我评价
2015/03/06 职场文书
大学生心理健康活动总结
2015/05/08 职场文书
2016年清明节红领巾广播稿
2015/12/17 职场文书
七年级之家长会发言稿范文
2019/09/04 职场文书
js判断两个数组相等的5种方法
2022/05/06 Javascript