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+EasyDrag 实现弹出可拖动的Div,同时向Div传值,然后返回Div选中的值
Oct 24 Javascript
jquery表单验证使用插件formValidator
Nov 10 Javascript
jquery操作对象数组元素方法详解
Nov 26 Javascript
jQuery scrollFix滚动定位插件
Apr 01 Javascript
jQuery实现鼠标滑向当前图片高亮显示并且其它图片变灰的方法
Jul 27 Javascript
JQuery实现网页右侧随动广告特效
Jan 17 Javascript
Webpack 实现 AngularJS 的延迟加载
Mar 02 Javascript
解决Vue-cli npm run build生产环境打包,本地不能打开的问题
Sep 20 Javascript
微信小程序入口场景的问题集合与相关解决方法
Jun 26 Javascript
vue + typescript + 极验登录验证的实现方法
Jun 27 Javascript
在微信小程序中渲染HTML内容3种解决方案及分析与问题解决
Jan 12 Javascript
Vue axios与Go Frame后端框架的Options请求跨域问题详解
Mar 03 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设计模式 Mediator (中介者模式)
2011/06/26 PHP
PHP fgetcsv 定义和用法(附windows与linux下兼容问题)
2012/05/29 PHP
php批量删除cookie的简单实现方法
2015/01/26 PHP
jQuery实现可收缩展开的级联菜单实例代码
2013/11/27 Javascript
提高NodeJS中SSL服务的性能
2014/07/15 NodeJs
jQuery实现图片预加载效果
2015/11/27 Javascript
javascript数组常用方法汇总
2016/09/10 Javascript
js数组去重的hash方法
2016/12/22 Javascript
理解javascript中的闭包
2017/01/11 Javascript
基于Node.js实现压缩和解压缩的方法
2018/02/13 Javascript
JS滚轮控制图片缩放大小和拖动的实例代码
2018/11/20 Javascript
vue组件命名和props命名代码详解
2019/09/01 Javascript
Jquery滑动门/tab切换实现方法完整示例
2020/06/05 jQuery
[02:28]DOTA2 2015国际邀请赛中国区预选赛首日现场百态
2015/05/26 DOTA
用Python的SimPy库简化复杂的编程模型的介绍
2015/04/13 Python
python操作ssh实现服务器日志下载的方法
2015/06/03 Python
Python中创建字典的几种方法总结(推荐)
2017/04/27 Python
Python 打印中文字符的三种方法
2018/08/14 Python
matplotlib实现热成像图colorbar和极坐标图的方法
2018/12/13 Python
在Pycharm中自动添加时间日期作者等信息的方法
2019/01/16 Python
python的一些加密方法及python 加密模块
2019/07/11 Python
分享8点超级有用的Python编程建议(推荐)
2019/10/13 Python
django中瀑布流写法实例代码
2019/10/14 Python
python用类实现文章敏感词的过滤方法示例
2019/10/27 Python
tensorflow之获取tensor的shape作为max_pool的ksize实例
2020/01/04 Python
Python Json数据文件操作原理解析
2020/05/09 Python
详解python metaclass(元类)
2020/08/13 Python
详解canvas在圆弧周围绘制文本的两种写法
2018/05/22 HTML / CSS
求最大连续递增数字串(如"ads3sl456789DF3456ld345AA"中的"456789")
2015/09/11 面试题
四好少年事迹材料
2014/01/12 职场文书
行政专员求职信范文
2014/05/03 职场文书
旅游文化节策划方案
2014/06/06 职场文书
2014年村官工作总结
2014/11/24 职场文书
如何利用pygame实现打飞机小游戏
2021/05/30 Python
python DataFrame中stack()方法、unstack()方法和pivot()方法浅析
2022/04/06 Python
mysql 排序失效
2022/05/20 MySQL