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 相关文章推荐
jQuery学习笔记 获取jQuery对象
Sep 19 Javascript
怎样在JavaScript里写一个swing把数据插入数据库
Dec 10 Javascript
页面刷新时记住滚动条的位置jquery代码
Jun 17 Javascript
浅析JS动态创建元素【两种方法】
Apr 20 Javascript
基于BootStrap Metronic开发框架经验小结【八】框架功能总体界面介绍
May 12 Javascript
jQuery对checkbox 复选框的全选全不选反选的操作
Aug 09 Javascript
jQuery图片切换动画特效
Nov 02 Javascript
微信小程序 picker 组件详解及简单实例
Jan 10 Javascript
vue环境搭建简单教程
Nov 07 Javascript
详解VUE自定义组件中用.sync修饰符与v-model的区别
Jun 26 Javascript
Vue Render函数原理及代码实例解析
Jul 30 Javascript
Vue Element校验validate的实例
Sep 21 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的计数器程序
2006/10/09 PHP
php file_get_contents函数轻松采集html数据
2010/04/22 PHP
php报表之jpgraph柱状图实例代码
2011/08/22 PHP
php+ajax做仿百度搜索下拉自动提示框(有实例)
2012/08/21 PHP
使用CodeIgniter的类库做图片上传
2014/06/12 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
2017/09/17 PHP
accesskey 提交
2006/06/26 Javascript
基于jquery的lazy loader插件实现图片的延迟加载[简单使用]
2011/05/07 Javascript
jQuery最佳实践完整篇
2011/08/20 Javascript
JavaScript中函数声明优先于变量声明的实例分析
2012/03/01 Javascript
浅析javascript操作 cookie对象
2014/12/26 Javascript
JQuery通过AJAX从后台获取信息显示在表格上并支持行选中
2015/09/15 Javascript
jQuery+canvas实现的球体平抛及颜色动态变换效果
2016/01/28 Javascript
Jquery实现简单的轮播效果(代码管用)
2016/03/14 Javascript
js定义类的几种方法(推荐)
2016/06/08 Javascript
jQuery的层级查找方式分析
2016/06/16 Javascript
Bootstrap Modal遮罩弹出层代码分享
2016/11/21 Javascript
Jquery Easyui菜单组件Menu使用详解(15)
2016/12/18 Javascript
Bootstrap 下拉多选框插件Bootstrap Multiselect
2017/01/22 Javascript
Vue的MVVM实现方法
2017/08/16 Javascript
vuex中的 mapState,mapGetters,mapActions,mapMutations 的使用
2018/04/13 Javascript
d3.js实现自定义多y轴折线图的示例代码
2018/05/30 Javascript
angularJS实现不同视图同步刷新详解
2018/10/09 Javascript
webpack4.x CommonJS模块化浅析
2018/11/09 Javascript
[58:11]守擂赛第二周擂主赛 DeMonsTer vs Leopard
2020/04/28 DOTA
Python原始字符串与Unicode字符串操作符用法实例分析
2017/07/22 Python
在python中获取div的文本内容并和想定结果进行对比详解
2019/01/02 Python
在win64上使用bypy进行百度网盘文件上传功能
2020/01/02 Python
Python装饰器如何实现修复过程解析
2020/09/05 Python
linux mint中搜狗输入法导致pycharm卡死的问题
2020/10/28 Python
宝塔面板出现“open_basedir restriction in effect. ”的解决方法
2021/03/14 PHP
美国健康和保健平台:healtop
2020/07/02 全球购物
办公室秘书自我鉴定
2014/01/18 职场文书
安全生产演讲稿
2014/05/09 职场文书
小学体育教学随笔
2015/08/14 职场文书
MySql分区类型及创建分区的方法
2022/04/13 MySQL