JavaScript中清空数组的三种方式


Posted in Javascript onMarch 22, 2017

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

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

测试结果:

  IE6 IE7 IE8 IE9 Firefox Safari Chrome
a.length=0 94 29 14 1 4 3 1
a=[] 0 0 0 0 0 0 0

以上结果可看到:方式3更快,效率更高。

从测试结果上看如果不保留原数组的其它属性Ext采用的方式更值得推荐。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
ExtJS GridPanel 根据条件改变字体颜色
Mar 08 Javascript
jQuery EasyUI 中文API Button使用实例
Apr 14 Javascript
利用函数的惰性载入提高javascript代码执行效率
May 05 Javascript
JS输入用户名自动显示邮箱后缀列表的方法
Jan 27 Javascript
动态的9*9乘法表效果的实现代码
May 16 Javascript
Bootstrap模块dropdown实现下拉框响应
May 22 Javascript
JS构造函数与原型prototype的区别介绍
Jul 04 Javascript
微信小程序 商城开发(ecshop )简单实例
Apr 07 Javascript
使用Vue开发自己的Chrome扩展程序过程详解
Jun 21 Javascript
详解vue-router的导航钩子(导航守卫)
Nov 02 Javascript
vue 数据遍历筛选 过滤 排序的应用操作
Nov 17 Javascript
vue脚手架项目创建步骤详解
Mar 02 Vue.js
javascript实现多张图片左右无缝滚动效果
Mar 22 #Javascript
tab栏切换原理
Mar 22 #Javascript
js中的DOM模拟购物车功能
Mar 22 #Javascript
js+canvas实现动态吃豆人效果
Mar 22 #Javascript
JavaScript实现星星等级评价功能
Mar 22 #Javascript
discuz表情的JS提取方法分析
Mar 22 #Javascript
详解vue2.0组件通信各种情况总结与实例分析
Mar 22 #Javascript
You might like
php比较多维数组中值的大小排序实现代码
2012/09/08 PHP
php后台如何避免用户直接进入方法实例
2013/10/15 PHP
php的sso单点登录实现方法
2015/01/08 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
Jquery 插件学习实例1 插件制作说明与tableUI优化
2010/04/02 Javascript
js获取下拉列表框中的value和text的值示例代码
2014/01/11 Javascript
遍历DOM对象内的元素属性示例代码
2014/02/08 Javascript
javascript内置对象arguments详解
2014/03/16 Javascript
JavaScript蒙板(model)功能的简单实现代码
2016/08/04 Javascript
教你JS中的运算符乘方、开方及变量格式转换
2016/08/09 Javascript
Bootstrap模态框(modal)垂直居中的实例代码
2016/08/18 Javascript
Bootstrap如何激活导航状态
2017/03/22 Javascript
jQuery实现QQ空间汉字转拼音功能示例
2017/07/10 jQuery
js实现移动端导航点击自动滑动效果
2017/07/18 Javascript
微信小程序之数据缓存的实例详解
2017/09/29 Javascript
vue-router 手势滑动触发返回功能
2018/09/30 Javascript
[03:02]安得倚天剑,跨海斩长鲸——中国军团出征DOTA2国际邀请赛
2018/08/14 DOTA
Python中操作MySQL入门实例
2015/02/08 Python
Python处理文本换行符实例代码
2018/02/03 Python
浅析python继承与多重继承
2018/09/13 Python
利用python求积分的实例
2019/07/03 Python
springboot配置文件抽离 git管理统 配置中心详解
2019/09/02 Python
opencv resize图片为正方形尺寸的实现方法
2019/12/26 Python
双向RNN:bidirectional_dynamic_rnn()函数的使用详解
2020/01/20 Python
Python气泡提示与标签的实现
2020/04/01 Python
Corelle官方网站:购买康宁餐具
2016/11/02 全球购物
中医学专业自荐信范文
2014/04/01 职场文书
产假请假条
2014/04/10 职场文书
亲子活动总结
2014/04/26 职场文书
大学生就业自我推荐信
2014/05/10 职场文书
公司副总经理任命书
2014/06/05 职场文书
县委班子四风对照检查材料思想汇报
2014/09/29 职场文书
李白故里导游词
2015/02/12 职场文书
2015年世界粮食日演讲稿
2015/03/20 职场文书
十个Python自动化常用操作,即拿即用
2021/05/10 Python
草系十大最强宝可梦,纸片人上榜,榜首大家最熟悉
2022/03/18 日漫