JavaScript如何快速高性能清空删除Array数组中的所有元素,并保持引用

栏目: JavaScript · 发布时间: 7年前

内容简介:有非常多的方法来清空一个已经存在的数组:将空数组直接赋值给变量 arr,新数组与原无引用关系。对新数组的操作不会影响原数组。

有非常多的方法来清空一个已经存在的数组:

var arr = [1,2,3,4];

方法1: 直接赋值

arr = [];

将空数组直接赋值给变量 arr,新数组与原无引用关系。对新数组的操作不会影响原数组。

方法2: 设置 length

arr.length = 0

直接将数组长度设置为0,此方法并不是在所有的JS引擎中都能工作,并且,当"strict mode"严格模式时,因 arr.length 是只读的,此方法将不起作用。

方法3: splice

arr.splice(0, arr.length)

这种方法会返回删除的所有元素,并形一个新的数组,不过对性能没有影响,并将保持对数组的引用。

方法4: pop

while(arr.length > 0) {
    arr.pop();
}

性能较差。

方法5: shift

while (arr.length > 0) {
  arr.shift();
}

这是性能最差的一种方法。

性能比较:

根据性能比较 http://jsben.ch/#/hyj65

方法 2, 3 性能差不多,非常快,并且可保持对数组的引用。方法 4, 5性能较差。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Web开发秘方

Web开发秘方

Brian P. Hogan、Chris Warren、Mike Weber、Chris Johnson、Aaron Godin / 七印部落 / 华中科技大学出版社 / 2013-7-10 / 66.00元

猜猜硅谷的前端工程师怎么折腾JS的?想知道无限下拉的列表怎么做吗?你知道DropBox可以当Web服务器用吗?你知道怎么做出跨平台的幻灯片效果吗?不借助插件,怎样在移动设备上实现动画效果?怎样快速搭建和测试HTML电子邮箱?怎样制作跨PC和移动设备显示的应用界面?怎样利用最新的JavaScript框架(Backbone和Knockout)提高应用的响应速度?怎样有效利用CoffeeScript和S......一起来看看 《Web开发秘方》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具