JavaScript中清空数组的方法总结


Posted in Javascript onDecember 02, 2016

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

这里其实并不能说是严格意义的清空数组,只是将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);

测试结果:

JavaScript中清空数组的方法总结

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

以上所述是小编给大家介绍的JavaScript中清空数组的三种方式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
日期函数扩展类Ver0.1.1
Sep 07 Javascript
javascript利用初始化数据装配模版的实现代码
Nov 17 Javascript
基于JQuery的Select选择框的华丽变身
Aug 23 Javascript
javascript 判断页面访问方式电脑或者移动端
Sep 19 Javascript
JS中使用正则表达式g模式和非g模式的区别
Apr 01 Javascript
vue.js+Echarts开发图表放大缩小功能实例
Jun 09 Javascript
JS实现批量上传文件并显示进度功能
Jun 27 Javascript
详解Node中导入模块require和import的区别
Aug 11 Javascript
用最少的JS代码写出贪吃蛇游戏
Jan 12 Javascript
vue解决弹出蒙层滑动穿透问题的方法
Sep 22 Javascript
解决layui中onchange失效以及form动态渲染失效的问题
Sep 27 Javascript
JavaScript实现多文件下载方法解析
Aug 07 Javascript
浅谈js中几种实用的跨域方法原理详解
Dec 02 #Javascript
基于JQuery实现的跑马灯效果(文字无缝向上翻动)
Dec 02 #Javascript
探讨跨域请求资源的几种方式(总结)
Dec 02 #Javascript
jQuery实现倒计时(倒计时年月日可自己输入)
Dec 02 #Javascript
JavaScript 计算笛卡尔积实例详解
Dec 02 #Javascript
jQuery联动日历的实例解析
Dec 02 #Javascript
利用jQuery插件imgAreaSelect实现获得选择域的图像信息
Dec 02 #Javascript
You might like
php设计模式 FlyWeight (享元模式)
2011/06/26 PHP
php将mysql数据库整库导出生成sql文件的具体实现
2014/01/08 PHP
Laravel使用memcached缓存对文章增删改查进行优化的方法
2016/10/08 PHP
PHP合并数组的2种方法小结
2016/11/24 PHP
最简单的js图片切换效果实现代码
2011/09/24 Javascript
jquery事件机制扩展插件 jquery鼠标右键事件
2011/12/21 Javascript
node.js中的buffer.write方法使用说明
2014/12/10 Javascript
JavaScript中的闭包(Closure)详细介绍
2014/12/30 Javascript
jQuery中position()方法用法实例
2015/01/16 Javascript
Java Mybatis框架入门基础教程
2015/09/21 Javascript
javascript for-in有序遍历json数据并探讨各个浏览器差异
2015/11/30 Javascript
javascript自执行函数
2017/02/10 Javascript
教你用Cordova打包Vue项目的方法
2017/10/17 Javascript
ES6解构赋值实例详解
2017/10/31 Javascript
DWR内存兼容及无法调用问题解决方案
2020/10/16 Javascript
python基础教程之缩进介绍
2014/08/29 Python
python抓取最新博客内容并生成Rss
2015/05/17 Python
Python实现控制台输入密码的方法
2015/05/29 Python
Python中利用Scipy包的SIFT方法进行图片识别的实例教程
2016/06/03 Python
pymysql 插入数据 转义处理方式
2020/03/02 Python
Python脚本去除文件的只读性操作
2020/03/05 Python
CSS3教程(1):什么是CSS3
2009/04/02 HTML / CSS
屈臣氏乌克兰:Watsons UA
2019/10/29 全球购物
亚洲领先的设计购物网站:Pinkoi
2020/11/26 全球购物
一道写SQL的面试题和答案
2013/11/19 面试题
TCP协议通讯的过程和步骤是什么
2015/10/18 面试题
企业演讲稿范文
2013/12/28 职场文书
初中三好学生事迹材料
2014/01/13 职场文书
总会计师岗位职责
2014/02/19 职场文书
校园绿化美化方案
2014/06/08 职场文书
乡镇组织委员个人整改措施
2014/09/16 职场文书
2014县政府领导班子对照检查材料思想汇报
2014/09/25 职场文书
新郎父母婚礼致辞
2015/07/27 职场文书
2016教师党员学习心得体会
2016/01/21 职场文书
2016年度基层党建工作公开承诺书
2016/03/25 职场文书
简单实现一个手持弹幕功能+文字抖动特效
2021/03/31 HTML / CSS