JavaScript中清空数组的三种方法分享


Posted in Javascript onApril 07, 2011

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

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

测试结果:

JavaScript中清空数组的三种方法分享

以上结果可看到:方式3更快,效率更高。因此如果不保留原数组的其它属性Ext采用的方式更值得推荐。

Javascript 相关文章推荐
将string解析为json的几种方式小结
Nov 11 Javascript
javascript动态加载实现方法一
Aug 22 Javascript
jquery ajax请求实例深入解析
Nov 26 Javascript
Angular2自定义分页组件
Apr 19 Javascript
AngularJS实现的2048小游戏功能【附源码下载】
Jan 03 Javascript
vue iview实现动态路由和权限验证功能
Apr 17 Javascript
JavaScript闭包与作用域链实例分析
Jan 21 Javascript
js实现全选反选不选功能代码详解
Apr 24 Javascript
vue-router结合vuex实现用户权限控制功能
Nov 14 Javascript
Javascript异步编程async实现过程详解
Apr 02 Javascript
浅谈Vue 自动化部署打包上线
Jun 14 Javascript
vue 使用async写数字动态加载效果案例
Jul 18 Javascript
使用滤镜设置透明导致 IE 6/7/8/9 解析异常的解决方法
Apr 07 #Javascript
javascript各浏览器中option元素的表现差异
Apr 07 #Javascript
IE6/7/8中Option元素未设value时Select将获取空字符串
Apr 07 #Javascript
我的javascript 函数链之演变
Apr 07 #Javascript
JavaScript中链式调用之研习
Apr 07 #Javascript
js中各浏览器中鼠标按键值的差异
Apr 07 #Javascript
javascript 单例/单体模式(Singleton)
Apr 07 #Javascript
You might like
服务器web工具 php环境下
2010/12/29 PHP
PHP register_shutdown_function函数的深入解析
2013/06/03 PHP
在Linux系统的服务器上隐藏PHP版本号的方法
2015/06/06 PHP
最新最全PHP生成制作验证码代码详解(推荐)
2016/06/12 PHP
PHP实现留言板功能的详细代码
2017/03/25 PHP
PHP tp5中使用原生sql查询代码实例
2020/10/28 PHP
js获取url参数的使用扩展实例
2007/12/29 Javascript
JS设置cookie、读取cookie、删除cookie
2015/04/17 Javascript
javascript cookie的简单应用
2016/02/24 Javascript
JavaScript实现显示函数调用堆栈的方法
2016/04/21 Javascript
js与applet相互调用的方法
2016/06/22 Javascript
Angular.JS利用ng-disabled属性和ng-model实现禁用button效果
2017/04/05 Javascript
关于Angular2 + node接口调试的解决方案
2017/05/28 Javascript
vue下跨域设置的相关介绍
2017/08/26 Javascript
jquery.onoff实现简单的开关按钮功能(推荐)
2018/05/24 jQuery
详解Express笔记之动态渲染HTML(新手入坑)
2018/12/13 Javascript
零基础之Node.js搭建API服务器的详解
2019/03/08 Javascript
vue 使用高德地图vue-amap组件过程解析
2019/09/07 Javascript
JavaScript闭包相关知识解析
2019/10/19 Javascript
es6数组includes()用法实例分析
2020/04/18 Javascript
VUE 项目在IE11白屏报错 SCRIPT1002: 语法错误的解决
2020/09/27 Javascript
python连接MySQL、MongoDB、Redis、memcache等数据库的方法
2013/11/15 Python
使用Python进行二进制文件读写的简单方法(推荐)
2016/09/12 Python
python urllib urlopen()对象方法/代理的补充说明
2017/06/29 Python
python日期时间转为字符串或者格式化输出的实例
2018/05/29 Python
详解Html5原生拖拽操作
2018/01/12 HTML / CSS
html5指南-1.html5全局属性(html5 global attributes)深入理解
2013/01/07 HTML / CSS
银行职员个人的工作自我评价
2014/02/15 职场文书
会计与出纳自荐书范文
2014/03/16 职场文书
安全生产月演讲稿
2014/05/09 职场文书
保护动物的标语
2014/06/11 职场文书
2014年生活老师工作总结
2014/12/23 职场文书
立案决定书范文
2015/06/24 职场文书
新闻稿件写作范文
2015/07/18 职场文书
2016年第二十届“母亲节暨幸福工程救助贫困母亲活动日”活动总结
2016/04/06 职场文书
利用正则表达式匹配浮点型数据
2022/05/30 Java/Android