`
charrys
  • 浏览: 35049 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类

清空数组的两种方式

    博客分类:
  • js
阅读更多

方式一,length赋值为0

这种方式很有意思,其它语言如Java,其数组的length是只读的,不能被赋值。如

Java代码复制代码
  1. int [] ary = { 1 , 2 , 3 , 4 };   
  2. ary.length =  0 ;  

Java中会报错,编译通不过。

而JS中则可以,且将数组清空了,如

Js代码复制代码
  1. var  ary = [1,2,3,4];   
  2. ary.length = 0;   
  3. console.log(ary);  // 输出 [],空数组,即被清空了   

目前 Prototype中数组的 clear 方法和mootools库中数组的 empty 方法使用这种方式清空数组。

方式二,赋值为[]

Js代码复制代码
  1. var  ary = [1,2,3,4];   
  2. ary = [];  // 赋值为一个空数组以达到清空原数组   

Ext库Ext.CompositeElementLite类的 clear 方法使用这种方式清空。

Js代码复制代码
  1.   

方式1 保留了数组其它属性,方式2 则未保留。

很多人认为方式1的效率很高些,因为仅仅是给length重新赋值了,而方式2则重新建立个对象。经 测试 恰恰是方式2的效率高。测试代码:

Js代码复制代码
  1. var  a = [];   
  2. for  ( var  i=0; i< 1000000; i++){   
  3.     a.push(i);   
  4. }   
  5. var  start =  new  Date();   
  6. //a = [];   
  7. a.length = 0;   
  8. var  end =  new  Date();   
  9. 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

 

以上结果可看到:方式2更快,效率更高。谢谢 逍遥君武 提供测试结果。

来自(http://www.ok22.org/art_detail.aspx?id=116 )

分享到:
评论

相关推荐

    JavaScript清空数组元素的两种方法简单比较

    主要介绍了JavaScript清空数组元素的两种方法简单比较,罗列了几种常见的情况javascript数组的方法,并且比较了其中的两种常见方法,具有一定参考借鉴价值,需要的朋友可以参考下

    JavaScript中清空数组的三种方法分享

    JavaScript中清空数组的三种方法分享,需要的朋友可以参考下。

    javascript 删除数组元素和清空数组的简单方法

    javascript 删除数组元素和清空数组的简单方法 一、清空数组 var ary = [1,2,3,4]; ary.splice(0,ary.length);//清空数组 console.log(ary); // 输出 [],空数组,即被清空了 二、删除数组元素 var ary = [1,2,3,4...

    js删除数组元素、清空数组的简单方法(必看)

    一、清空数组 var ary = [1,2,3,4]; ary.splice(0,ary.length);//清空数组 console.log(ary); // 输出 [],空数组,即被清空了 ...若要删除其中的’b’,有两种方法: 1,delete方法:delete arr[1] 这

    【03-流程控制与数组】

    •Java语言支持两种语法格式来定义数组: –type[ ] arrayName; –type arrayName[ ]; •对于这两种语法格式,一般推荐使用第一种格式。因为第一种格式不仅具有更好的语意,也具有更好的可读性。 •数组是一种...

    vue 清空input标签 中file的值操作

    补充知识:将input file的选择的文件清空的两种解决方案 上传文件时,选择了文件后想清空文件路径,搜索了一下,用两种方法解决 第一种 var obj = document.getElementById(‘fileupload') ; obj.select(); document...

    Array-Editor

    数组编辑器(数组编辑器) 这是一个简单的复制编辑器,它有以下功能: 1,生成样本数据: 生成随机或等差的片段,其中包含20个元素;或者在原分段尾部另加20个元素。 2,显示摘要: ...9,清空数组

    javascript入门笔记

    调用:在JS中任何的合法位置处,都可以通过 函数名() 的方式进行调用 练习: 1、声明一个函数,名称为 change 2、在函数中 1、通过弹框,分两次,录入两个数字,保存在 a 和 b 2、先打印 a 和 b的值 3、如果...

    用C++实现基于多态的职工管理系统

    该职工管理系统实现了以下功能:0、退出管理系统 1、增加职工信息 2、显示职工信息 3、删除离职职工 4、修改职工信息 6、按照编号排序 7、清空...且按照职工编号排序实现了可进行选择的升序或者降序的两种排序方式。

    中文验证码源码

    中文验证码源码,C#完美实例,自带判断模块,下面简要说一下本中文验证码的实现思路:获取GB2312编码页(表),调用函数产生4个随机中文汉字编码,根据汉字编码的字节数组解码出中文汉字,生成随机生成器,清空图片...

    一个c++描述的栈类

    本程序采用模板类实现,利用一组地址连续的存储单元依次存放从栈底到栈顶的数据元素,将数据类型为T的数据元素存储在数组...Main函数主要栈类的后进先出原则,实现n个数的倒序,这里我们采用int和char两种类型来验证。

    vue:el-input输入时限制输入的类型操作

    3.基于1.2两种情况下,还有一种是动态创建的字段(也就是v-for出来的),解决方法:先使用split形成字段数组,使用for循环找到最后一个点的前面的字段,方便使用$set更新和渲染页面 setDelMsicStr(field,type){ let props...

    数据结构与算法.xmind

    有递归和非递归两种方式 双向链表 循环链表 树 二叉树 完全二叉树 堆 满二叉树 哈夫曼树 哈夫曼编码 二叉搜索树 AVL树 平衡二叉树 红黑树 多叉树 B树 查找...

    c# 加密和解密相关代码

    string类的ToCharArray 方法用来将字符串中的字符复制到Unicode 字符数组,该方法有两种重载形式,本 实例中用到的它的重载形式如下: public char[] ToCharArray() 参数说明 返回值:元素为此字符串的各字符的...

    轻松学C#(图解版)

    6.5.1 清空数组 106 6.5.2 创建数组副本 107 6.5.3 复制一部分元素给另一数组 107 6.5.4 将当前一维数组的所有元素赋值到指定的一维数组中 108 6.5.5 获取某个元素的值 109 6.5.6 获取元素的索引值 109 6.5.7 获取某...

    mfc可视化计算器编程

    //定义个装字符的数组 _gcvt(m_Dis,sizeof(m_Dis),buffer); //把m_Dis存的数字转换为string for(int i=0;i;i++) { if(buffer[i]=='.'&& buffer[i+1]==0)//判断是否为整数 { point_flag=FALSE; //标志位...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例150 实例化Class类的5种方式 196 实例151 获得Class对象表示实体的名称 197 实例152 查看类的声明 198 实例153 查看类的成员 199 实例154 按继承层次对类排序 201 实例155 查看内部类信息 202 7.2 反射的进阶 ...

Global site tag (gtag.js) - Google Analytics