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 相关文章推荐
JQuery筛选器全系列介绍
Aug 27 Javascript
jquery的attr方法禁用表单元素禁用输入内容
Jun 23 Javascript
jQuery中Ajax的get、post等方法详解
Jan 20 Javascript
详解JavaScript基于面向对象之继承实例
Dec 16 Javascript
requireJS使用指南
Apr 27 Javascript
AngularJS基础 ng-open 指令简单实例
Aug 02 Javascript
js实现获取鼠标当前的位置
Dec 14 Javascript
vue-cli项目中使用Mockjs详解
May 14 Javascript
vue项目中axios请求网络接口封装的示例代码
Dec 18 Javascript
vue组件传值的实现方式小结【三种方式】
Feb 05 Javascript
vue 如何使用递归组件
Oct 23 Javascript
详细介绍Next.js脚手架完整搭建封装
Apr 26 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
php的XML文件解释类应用实例
2014/09/22 PHP
基于PHP-FPM进程池探秘
2017/10/17 PHP
Laravel 批量更新多条数据的示例
2017/11/27 PHP
php解决约瑟夫环算法实例分析
2019/09/30 PHP
jquery简单体验
2007/01/10 Javascript
IE6不能修改NAME问题的解决方法
2010/09/03 Javascript
JavaScript打字小游戏代码
2011/12/26 Javascript
Jquery AJAX POST与GET之间的区别
2013/11/14 Javascript
详谈LABJS按需动态加载js文件
2015/05/07 Javascript
javascript类型系统——日期Date对象全面了解
2016/07/13 Javascript
Javascript 制作图形验证码实例详解
2016/12/22 Javascript
Javascript 实现计算器时间功能详解及实例(二)
2017/01/08 Javascript
使用JavaScript判断用户输入的是否为正整数(两种方法)
2017/02/05 Javascript
BootStrap给table表格的每一行添加一个按钮事件
2017/09/07 Javascript
jQuery获取复选框选中的当前行的某个字段的值
2017/09/15 jQuery
vue实现未登录跳转到登录页面的方法
2018/07/17 Javascript
Vue页面跳转动画效果的实现方法
2018/09/23 Javascript
vue-router路由模式详解(小结)
2019/08/26 Javascript
JavaScript HTML DOM 元素 (节点)新增,编辑,删除操作实例分析
2020/03/02 Javascript
JavaScript如何判断对象有某属性
2020/07/03 Javascript
Python内建模块struct实例详解
2018/02/02 Python
Python实现的网页截图功能【PyQt4与selenium组件】
2018/07/12 Python
Python3如何在服务器打印资产信息
2020/08/27 Python
Python request post上传文件常见要点
2020/11/20 Python
css3中flex布局宽度不生效的解决
2020/12/09 HTML / CSS
html5 canvas合成海报所遇问题及解决方案总结
2017/08/03 HTML / CSS
使用html5 canvas绘制圆环动效
2019/06/03 HTML / CSS
指针和引用有什么区别
2013/01/13 面试题
社会学专业求职信
2014/07/17 职场文书
教师党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
运动会闭幕词
2015/01/28 职场文书
债务追讨律师函
2015/06/24 职场文书
穆斯林的葬礼读书笔记
2015/06/26 职场文书
医学生自荐信范文(2016精选篇)
2016/01/28 职场文书
财务年终工作总结大全
2019/06/20 职场文书
Redis实现短信验证码登录的示例代码
2022/06/14 Redis