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 相关文章推荐
从Ajax到JQuery Ajax学习
Feb 14 Javascript
改进UCHOME的记录发布,增强可访问性用户体验
Jan 17 Javascript
JavaScript中Function()函数的使用教程
Jun 04 Javascript
jQuery为某个div加入行样式
Jun 09 jQuery
bootstrap table方法之expandRow-collapseRow展开或关闭当前行数据
Aug 09 Javascript
socket在egg中的使用实例代码详解
May 30 Javascript
Vue 子组件与数据传递问题及注意事项
Jul 11 Javascript
java和js实现的洗牌小程序
Sep 30 Javascript
vue-element-admin 菜单标签失效的解决方式
Nov 12 Javascript
在vue中利用v-html按分号将文本换行的例子
Nov 14 Javascript
基于JS+HTML实现弹窗提示是否确认提交功能
Jun 17 Javascript
vue-drawer-layout实现手势滑出菜单栏
Nov 19 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
Yii多表联合查询操作详解
2016/06/02 PHP
图片格式的JavaScript和CSS速查手册
2007/08/20 Javascript
JavaScript 小型打飞机游戏实现原理说明
2010/10/28 Javascript
时间戳转换为时间 年月日时间的JS函数
2013/08/19 Javascript
使用GruntJS构建Web程序之构建篇
2014/06/04 Javascript
javascript动态判断html元素并执行不同的操作
2014/06/16 Javascript
我的NodeJs学习小结(一)
2014/07/06 NodeJs
node.js中的console.warn方法使用说明
2014/12/09 Javascript
JavaScript中document对象使用详解
2015/01/06 Javascript
JS判断是否360安全浏览器极速内核的方法
2015/01/29 Javascript
jQuery获取某天的农历日期并判断是否除夕或新年的方法
2016/03/01 Javascript
js改变css样式的三种方法推荐
2016/06/28 Javascript
AngularJS  $on、$emit和$broadcast的使用
2016/09/05 Javascript
值得分享的Bootstrap Table使用教程
2016/11/23 Javascript
浅谈Angular.js中使用$watch监听模型变化
2017/01/10 Javascript
微信页面弹出键盘后iframe内容变空白的解决方案
2017/09/20 Javascript
简单谈谈CommonsChunkPlugin抽取公共模块
2017/12/31 Javascript
Vue.js实现表格渲染的方法
2018/09/07 Javascript
使用VUE实现在table中文字信息超过5个隐藏鼠标移到时弹窗显示全部
2019/09/16 Javascript
Vue监听滚动实现锚点定位(双向)示例
2019/11/13 Javascript
python使用Queue在多个子进程间交换数据的方法
2015/04/18 Python
Python中splitlines()方法的使用简介
2015/05/20 Python
python 自动化将markdown文件转成html文件的方法
2016/09/23 Python
详解python3百度指数抓取实例
2016/12/12 Python
python-opencv在有噪音的情况下提取图像的轮廓实例
2017/08/30 Python
python爬取淘宝商品详情页数据
2018/02/23 Python
python使用beautifulsoup4爬取酷狗音乐代码实例
2019/12/04 Python
Expedia西班牙:预订酒店、机票、旅行和廉价度假套餐
2019/04/10 全球购物
社区端午节活动方案
2014/01/28 职场文书
我爱幼儿园演讲稿
2014/09/11 职场文书
2015教师年度思想工作总结
2015/04/30 职场文书
小学数学国培研修日志
2015/11/13 职场文书
祝福语集锦:给满月宝宝的祝福语
2019/11/20 职场文书
Python MNIST手写体识别详解与试练
2021/11/07 Python
动画「半妖的夜叉姬」新BD特典图公开
2022/03/22 日漫
Nginx代理Redis哨兵主从配置的实现
2022/07/15 Servers