`
charrys
  • 浏览: 35815 次
  • 性别: 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中常见的几种清空数组的方法: 1. `arr = [];` — 直接将变量`arr`重新...

    JavaScript中清空数组的方法总结

    总结来说,JavaScript提供了多种清空数组的方法,每种方法都有其适用场景和优缺点。splice方法操作直观且能够直接修改原数组,但不适用于保留数组引用的场景。将length属性设置为0是一种快速且不产生新数组对象的...

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

    这是一种非常巧妙的方法,它直接修改数组的`length`属性,使其等于0,从而达到清空数组的目的。在JavaScript中,不同于Java等其他语言,数组的`length`属性是可以被赋值的。这与大多数编程语言的行为不同,例如在...

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

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

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

    由于数组的使用场景十分广泛,因此如何有效地删除数组元素和清空数组,是每位前端开发者都需要掌握的基本技能之一。 首先,关于清空数组的方法。在JavaScript中,可以通过修改数组的`length`属性来快速清空数组中的...

    Java栈的实例-数组和链表两种方法 数组和链表.pdf

    总之,Java中的栈可以通过数组或链表两种方式实现,每种实现都有其优势和适用场景。选择哪种实现取决于具体的应用需求,如内存使用、插入删除效率等因素。在实际编程中,可以根据具体问题来决定采用哪种数据结构实现...

    循环数组实现队列

    队列有两种存储形式:链式和循环数组存储。 在哈工大软件设计代码中,队列的实现是使用循环数组存储结构的。该存储结构的实现是使用模板类的方式,定义了一个名为MyQueue的类,包含了队列的基本操作:入队、出队、...

    Javascript数组Array基础介绍_.docx

    创建数组有两种方式:数组字面量方式和构造函数方式。数组字面量方式是使用中括号括起来的值,如 `var arr1 = [1, 2, 3];`。构造函数方式是使用 `new Array()` 构造函数,如 `var arr2 = new Array();`。但是,构造...

    PHP数组概述

    // 清空数组 unset($arr); // 或者 $arr = array(); ``` ##### 4.4 遍历数组 - **使用`for`循环**:适合遍历索引数组。 - **使用`foreach`循环**:适合遍历关联数组或索引数组。 ```php // 使用for循环遍历索引...

    .net 数组与字符串

    在.NET框架中,数组和字符串是两种非常基础且重要的数据结构。数组允许我们存储和操作一组相同类型的数据,而字符串则是处理文本数据的核心工具。在这篇详细的讲解中,我们将深入探讨这两个概念,以及它们在.NET中的...

    用JS数组的方式实现2级联动菜单

    总的来说,通过JavaScript数组来实现二级联动菜单是一种高效且灵活的方法。这种方式可以轻松地扩展到多级菜单,并且可以适应各种复杂的数据结构。在实际项目中,你还可以进一步优化,比如添加异步加载数据、错误处理...

    Unity3D教程:Array数组类的使用(二)1

    Unity3D 中还有两种类型的数组,一种是内置的.NET数组,另一种是JavaScript数组。内置数组(原始的“NET”数组)性能更高,但不能动态调整大小,它们是静态类型的,这意味着它们可以在Unity编辑器的检视面板中直接...

    JavaScript数组详解

    清空数组的一种方式是将数组变量赋值为一个新的空数组,另一种方式是将length属性设置为0。 5. 数组遍历: 遍历是访问数组中每个元素的过程。常见的遍历方式有for循环和for...in循环。for循环通过索引访问,for...in...

    js利用数组length属性清空和截短数组的小例子

    首先,我们来看如何**使用`length`属性清空数组**。在JavaScript中,数组的`length`属性不仅用于获取数组的元素个数,还可以用来设置数组的长度。当你将`length`属性设置为0时,数组的所有元素都会被删除,但数组...

    用控件数组制作计算器

    在编程领域,控件数组是一种高效且灵活的设计方式,尤其在可视化编程环境中,如VB (Visual Basic) 或者VBA (Visual Basic for Applications)。控件数组允许开发者将多个相似类型的控件(如按钮、文本框等)组合在...

    循环数组的算法源代码。 这是一个环型数组模版。一般可用做缓冲区的使用.rar

    为了模拟循环,我们需要处理两种情况:一是访问当前索引之后的元素,二是访问已经超出索引范围的元素。这两种情况可以通过取模运算(%)来解决,取模运算可以将任何数转换为0到其除数-1之间的数。 以下是一个简单的...

    C++二维动态数组的创建与删除

    本文将详细讲解如何在C++中创建和删除二维动态数组,以及这两种不同的实现方式。 首先,我们来看第一种创建二维动态数组的方法,这种方式要求列数必须在创建时指定。假设我们要创建一个`TYPE`类型的`M`行`N`列的二...

    C++Builder动态对象数组

    在C++Builder中,TList是用于管理动态对象数组的一种方式。它提供了较为简便的方式来创建、管理和销毁一系列对象。TList支持动态添加元素,并通过索引访问列表中的各个对象。 - **初始化与使用** 在使用TList之前...

Global site tag (gtag.js) - Google Analytics