当前位置:首页 > 日记 > 正文

JavaScript中清空数组的三种方式

JavaScript中清空数组的三种方式

方式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采用的方式更值得推荐。

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

相关文章

Vue.js自定义指令的用法与实例解析

Vue.js自定义指令的用法与实例解析

自定义指令,实例,电脑软件,Vue,js,市面上大多数关于Vue.js自定义指令的文章都在讲语法,很少讲实际的应用场景和用例,以致于即便明白了怎么写,也不知道怎么用。本文不讲语法,就讲自定义指令的用法。自定义指令是用来操作DOM的。尽管Vue推崇数据…

jQuery制作全屏宽度固定高度轮播图

jQuery制作全屏宽度固定高度轮播图

全屏,轮播图,宽度,实例,高度,前端新手自己写的,练习一下基本功,也是留下的第一次记录html部分div class="cm-banner"> <div class="cm-banner-list"> <ul id="cm_banner_list"> <!--图片宽度和高度在css中定为1920x300--> …

excel 公式转为文本的方法

excel 公式转为文本的方法

方法,文本,公式,电脑软件,excel,  Excel中的公式是较为常用的功能,具体该如何把公式转为文本呢?下面是小编带来的关于excel 公式转为文本的方法,希望阅读过后对你有所启发!excel 公式转为文本的方法:  公式转文本步骤1:选中J2单元格开始的J…

ps怎么制作透明背景的logo图标?

ps怎么制作透明背景的logo图标?

图标,透明背景,电脑软件,ps,logo,ps中想要制作一个透明背景的lo,但导入的图却有白色背景,该怎么办呢?下面我们就来看看详细的处理方法。软件名称:Adobe Photoshop 8.0 中文完整绿色破解版软件大小:150.1MB更新时间:2015-11-041、首先我打开一张个…

JavaScript之排序函数_动力节点Jav

JavaScript之排序函数_动力节点Jav

排序,节点,函数,学院,动力,排序算法排序也是在程序中经常用到的算法。无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小。如果是数字,我们可以直接比较,但如果是字符串或者两个对象呢?直接比较数学上的大小是没有意义的,因此,比较的…

Ai怎么复制呢?AI复制方法介绍

Ai怎么复制呢?AI复制方法介绍

方法,电脑软件,Ai,AI,在绘制图形的过程中,我们经常可能会遇到要使用相同的图形或者元素,重新绘制,有时候也不一定一模一样,这时候最好的办法就是复制一个。那么,怎么复制呢?下面就为大家详细介绍一下,来看看吧!步骤:1、为了方便讲解,我们先任意新建一…

微信小程序 滚动到某个位置添加cla

微信小程序 滚动到某个位置添加cla

位置,效果,代码,程序,电脑软件,微信小程序滚动到某个位置添加class效果<scroll-view scroll-y="true" style="height:100vh;" bindscrolltoupper="upper" bindscrolltolower="lower" bindscroll="scroll" scroll-top="{{scrollY…

Visual Studio寻找C#程序必要的运

Visual Studio寻找C#程序必要的运

库文件,运行,程序,电脑软件,Visual,  在工程打包中,有时候很头痛的就是运行所需要的库文件不能够全面的包含进来,特别是有时候调用了一系列外部扩展。对于这些问题,我们可以借用Visual Studio的打包功能帮助我们寻找软件运行必须的库文件。…

js 获取json数组里面数组的长度实

js 获取json数组里面数组的长度实

数组,长度,实例,电脑软件,js,作为一个前端页面开发者第一次处理json数据,遇到了‘js 获取json数组里面数组的长度'?竟然不知道 json没有.length属性(真是要嘲讽下自己),少壮不努力老大徒伤悲啊!以前都是去寻求男朋友帮助,但是最近尝试自己去解决…

js 递归和定时器的实例解析

js 递归和定时器的实例解析

递归,实例,电脑软件,js,递归:是一个函数通过调用自身的情况下构成的;首先上个例子:Function factorial(num){ if(num<=1){ return 1; }else{ return num*factorial(num-1); }}这是一个经典的递归阶乘函数,但是在js中这么调用可能会出现一些错误…

基于Vue实例生命周期 | 全面解析

基于Vue实例生命周期 | 全面解析

生命周期,实例,电脑软件,Vue,前面的话Vue实例在创建时有一系列的初始化步骤,例如建立数据观察,编译模板,创建数据绑定等。在此过程中,我们可以通过一些定义好的生命周期钩子函数来运行业务逻辑。本文将详细介绍Vue实例的生命周期图示下图是Vue…

微信小程序实现轮播图效果

微信小程序实现轮播图效果

轮播图,效果,程序,电脑软件,微信小,微信小程序实现轮播图,和网站,APP的效果差不多,代码少,效率高。先来看看效果图:主要用swiper + swiper-item来实现<view class='swiper'>滑块视图容器</view><!-- indicator-dots='true' 是否显示指示点 …