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 相关文章推荐
由JavaScript中call()方法引发的对面向对象继承机制call的思考
Sep 12 Javascript
js的onload事件及初始化按钮事件示例代码
Sep 25 Javascript
JavaScript中双叹号(!!)作用示例介绍
Apr 10 Javascript
简介JavaScript中的setTime()方法的使用
Jun 11 Javascript
JS实现淡蓝色简洁竖向Tab点击切换效果
Oct 06 Javascript
轻松掌握JavaScript中的Math object数学对象
May 26 Javascript
jQuery获取单击节点对象的方法
Jun 02 Javascript
js 数据存储和DOM编程
Feb 09 Javascript
jQuery中 bind的用法简单介绍
Feb 13 Javascript
详解React中setState回调函数
Jun 14 Javascript
Vue框架TypeScript装饰器使用指南小结
Feb 18 Javascript
微信小程序实现加入购物车滑动轨迹
Nov 18 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程序员应该掌握哪些技术?
2016/09/23 PHP
PHP无限极分类函数的实现方法详解
2017/04/15 PHP
JQuery与Ajax常用代码实现对比
2009/10/03 Javascript
Js setInterval与setTimeout(定时执行与循环执行)的代码(可以传入参数)
2010/06/11 Javascript
事件模型在各浏览器中存在差异
2010/10/20 Javascript
javascript 学习笔记(一)DOM基本操作
2011/04/08 Javascript
原生Js页面滚动延迟加载图片实现原理及过程
2013/06/24 Javascript
js模拟hashtable的简单实例
2014/03/06 Javascript
JavaScript动态修改网页元素内容的方法
2015/03/21 Javascript
学习JavaScript设计模式之状态模式
2016/01/08 Javascript
jQuery基础_入门必看知识点
2016/07/04 Javascript
easyUI实现类似搜索框关键词自动提示功能示例代码
2016/12/27 Javascript
angular directive的简单使用总结
2017/05/24 Javascript
Bootstrap响应式导航由768px变成992px的实现代码
2017/06/15 Javascript
js 监控iframe URL的变化实例代码
2017/07/12 Javascript
Bootstrap Table 删除和批量删除
2017/09/22 Javascript
layer实现关闭弹出层刷新父界面功能详解
2017/11/15 Javascript
详解bootstrap导航栏.nav与.navbar区别
2017/11/23 Javascript
几个你不知道的技巧助你写出更优雅的vue.js代码
2018/06/11 Javascript
Vue 动态组件与 v-once 指令的实现
2019/02/12 Javascript
Vue2.0使用嵌套路由实现页面内容切换/公用一级菜单控制页面内容切换(推荐)
2019/05/08 Javascript
vue2配置scss的方法步骤
2019/06/06 Javascript
python学习笔记:字典的使用示例详解
2014/06/13 Python
Python重新引入被覆盖的自带function
2014/07/16 Python
python查找目录下指定扩展名的文件实例
2015/04/01 Python
python爬虫添加请求头代码实例
2019/12/28 Python
python爬虫要用到的库总结
2020/07/28 Python
详解python tkinter 图片插入问题
2020/09/03 Python
Django Form常用功能及代码示例
2020/10/13 Python
HTTP状态码详解
2021/03/18 杂记
Html5 audio标签样式的修改
2016/01/28 HTML / CSS
Myprotein丹麦官网:欧洲第一运动营养品牌
2019/04/15 全球购物
医大实习自我鉴定
2013/12/07 职场文书
公职人员索取回扣检举信
2014/04/04 职场文书
出纳2015年度工作总结范文
2015/10/14 职场文书
Django中的JWT身份验证的实现
2021/05/07 Python