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 相关文章推荐
javascript函数中的arguments参数
Aug 01 Javascript
jQuery学习笔记之控制页面实现代码
Feb 27 Javascript
原生js编写设为首页兼容ie、火狐和谷歌
Jun 05 Javascript
javascript实现可全选、反选及删除表格的方法
May 15 Javascript
js代码验证手机号码和电话号码是否合法
Jul 30 Javascript
JS实现的简单鼠标跟随DiV层效果完整实例
Oct 31 Javascript
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
Dec 15 Javascript
详解JS中的this、apply、call、bind(经典面试题)
Sep 19 Javascript
移动端网页开发调试神器Eruda的介绍与使用技巧
Oct 30 Javascript
基于jQuery实现无缝轮播与左右点击效果
May 13 jQuery
基于vue-router 多级路由redirect 重定向的问题
Sep 03 Javascript
微信小程序开发之转发分享功能
Oct 22 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
理解PHP5中static和const关键字的区别
2007/03/19 PHP
php木马攻击防御之道
2008/03/24 PHP
PHP学习笔记 用户注册模块用户类以及验证码类
2011/09/20 PHP
简单的PHP缓存设计实现代码
2011/09/30 PHP
CodeIgniter表单验证方法实例详解
2016/03/03 PHP
php 判断过去离现在几年的函数(实例代码)
2016/11/15 PHP
JavaScript 获取用户客户端操作系统版本
2009/08/25 Javascript
显示js对象所有属性和方法的函数
2009/10/16 Javascript
jQuery实现动画效果的实例代码
2013/05/07 Javascript
JavaScript避免代码的重复执行经验技巧分享
2014/04/17 Javascript
Javascript中typeof 用法小结
2015/05/12 Javascript
使用JavaScript实现弹出层效果的简单实例
2016/05/31 Javascript
详细分析Javascript中创建对象的四种方式
2016/08/17 Javascript
fullpage.js全屏滚动插件使用实例
2016/09/06 Javascript
jQuery控制元素隐藏和显示
2017/03/03 Javascript
让微信小程序支持ES6中Promise特性的方法详解
2017/06/13 Javascript
详解AngularJS 模块化
2017/06/14 Javascript
Bootstrap一款超好用的前端框架
2017/09/25 Javascript
vue双花括号的使用方法 附练习题
2017/11/07 Javascript
详解webpack自定义loader初探
2018/08/29 Javascript
ng-zorro-antd 入门初体验
2018/12/03 Javascript
nodejs实现日志读取、日志查找及日志刷新的方法分析
2019/05/20 NodeJs
axios异步提交表单数据的几种方法
2019/08/11 Javascript
基于react项目打包css引用路径错误解决方案
2020/10/28 Javascript
[08:47]DOTA2每周TOP10 精彩击杀集锦vol.6
2014/06/25 DOTA
使用python为mysql实现restful接口
2018/01/05 Python
Python Paramiko模块的使用实际案例
2018/02/01 Python
Django 构建模板form表单的两种方法
2020/06/14 Python
CSS3 实现发光边框特效
2020/11/11 HTML / CSS
html5构建触屏网站之touch事件介绍
2013/01/07 HTML / CSS
中国领先的专业家电网购平台:国美在线
2016/12/25 全球购物
学校介绍信范文
2014/01/14 职场文书
应届毕业生简历自我评价
2014/01/31 职场文书
2014年超市员工工作总结
2014/11/18 职场文书
2015社区爱国卫生工作总结
2015/04/21 职场文书
Python源码解析之List
2021/05/21 Python