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 相关文章推荐
js控制滚动条缓慢滚动到顶部实现代码
Mar 20 Javascript
利用JS延迟加载百度分享代码,提高网页速度
Jul 01 Javascript
深入理解javascript中defer的作用
Dec 11 Javascript
Jquery实现侧边栏跟随滚动条固定(兼容IE6)
Apr 02 Javascript
jquery实现倒计时功能
Dec 28 Javascript
AngularJS基础 ng-keyup 指令简单示例
Aug 02 Javascript
node.js 发布订阅模式的实例
Sep 10 Javascript
无限循环轮播图之运动框架(原生JS实现)
Oct 01 Javascript
vuex actions传递多参数的处理方法
Sep 18 Javascript
详解angularjs跨页面传参遇到的一些问题
Nov 01 Javascript
基于 vue-skeleton-webpack-plugin 的骨架屏实战
Aug 05 Javascript
js中addEventListener()与removeEventListener()用法案例分析
Mar 02 Javascript
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
全国FM电台频率大全 - 4 山西省
2020/03/11 无线电
php中的一个中文字符串截取函数
2007/02/14 PHP
php设计模式 Proxy (代理模式)
2011/06/26 PHP
PHP设计模式之命令模式的深入解析
2013/06/13 PHP
PHP异常处理定义与使用方法分析
2017/07/25 PHP
JavaScipt基本教程之前言
2008/01/16 Javascript
JavaScript 对象模型 执行模型
2010/10/15 Javascript
JavaScript charCodeAt方法入门实例(用于取得指定位置字符的Unicode编码)
2014/10/17 Javascript
Bootstrap基本布局实现方法详解
2016/11/25 Javascript
react-native-tab-navigator组件的基本使用示例代码
2017/09/07 Javascript
vue2.0 + element UI 中 el-table 数据导出Excel的方法
2018/03/02 Javascript
vue定义全局变量和全局方法的方法示例
2018/08/01 Javascript
Vue一次性简洁明了引入所有公共组件的方法
2018/11/28 Javascript
vue 移动端记录页面浏览位置的方法
2020/03/11 Javascript
详解Vue+elementUI build打包部署后字体图标丢失问题
2020/07/13 Javascript
详谈vue中router-link和传统a链接的区别
2020/07/22 Javascript
[09:40]DAC2018 4.5 SOLO赛 MidOne vs Miracle
2018/04/06 DOTA
Python3实现连接SQLite数据库的方法
2014/08/23 Python
Python简单删除列表中相同元素的方法示例
2017/06/12 Python
python利用标准库如何获取本地IP示例详解
2017/11/01 Python
快速解决PyCharm无法引用matplotlib的问题
2018/05/24 Python
Python调用C++,通过Pybind11制作Python接口
2018/10/16 Python
Pandas-Cookbook 时间戳处理方式
2019/12/07 Python
Python如何对齐字符串
2020/07/30 Python
python 使用paramiko模块进行封装,远程操作linux主机的示例代码
2020/12/03 Python
css3 2D图片转动样式可以扩充到Js当中
2014/04/29 HTML / CSS
详解CSS3的图层阴影和文字阴影效果使用
2016/06/09 HTML / CSS
戴尔新西兰官网:Dell New Zealand
2020/01/07 全球购物
JAVA高级程序员面试题
2013/09/06 面试题
就业自荐书
2013/12/05 职场文书
校园十佳歌手策划书
2014/01/22 职场文书
公司门卫工作职责
2014/06/28 职场文书
2014年局领导班子自身建设情况汇报
2014/11/21 职场文书
一年级数学下册复习计划
2015/01/17 职场文书
《分数乘法》教学反思
2016/02/24 职场文书
python的变量和简单数字类型详解
2021/09/15 Python