`
wanxiaotao12
  • 浏览: 476556 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JavaScript中的数组之字符串下标

 
阅读更多

今天在看到 JavaScript 中 Array 这一部分的时候,发现字符串也可以作为数组的下标,以前还真不知道,孤陋寡闻。。。。
既然提供了这个特性,那么就有它的存在价值,我们来看看有什么用,欢迎大家补充。

首先,Array 是从 Object 继承下来,所以 Array 具有 Object 有的任何能力。看看Object作为集合的情况:

新建: var  object  =   new  Object(); 或  var  object  =  {};
增加: object[strIndex ] 
 = 
 value; (strIndex 为string)
删除:
 delete 
 object[strIndex ];
遍历:
 for  (  var  strObjIndex  in  object ) object[strObjIndex ]; 

code 1:

var  object  =  {};    // var object = new Object(); 二者等价 
object[ " First "  =   " Firstmm " ;
object[
 " Second "  =   " Secondmm " 
;
object[
 " Third "  =   " Thirdmm " 
;
delete  object[ " Second " 
]; 

for  (  var strObjIndex in 
object )
    alert(
 strObjIndex = " strObjIndex + "\nobject[" +strObjIndex + "] = "
object[strObjIndex]); 


除了我们熟悉的方法外,Array也是可以用字符串做下标,像code 1 中的 Object 一样。

code 2:

var  array  =   new  Array();    // var array = []; 二者等价 
array[ " First "  =   " Firstgg " ;
array[
 " Second "  =   " Secondgg " 
;
array[
 " Third "  =   " Thirdgg " 

delete  array[ " First " 
]; 

for  (  var  strArrayIndex  in 
 array )
    alert(
 " strArrayIndex =  " + strArrayIndex + "\narray[" +strArrayIndex + "] = " array[strArrayIndex]); 


在某些情况下,用字符串做下标可以提高我们的访问效率,
例如我们要在Array中检索出一个指定的值,通常做法,我们需要遍历整个数组,如下:

code 3:

var  arrayTest  =   new  Array();    // var arrayTest = []; 二者等价 
// 
初始化arrayTest 
arrayTest.push( " Blog " );           // arrayTest[0] = "Blog"; 二者等价 
arrayTest.push( " Java " );
arrayTest.push(
 " MaJianan " 
);

var  output  =   "" ;    // 用于输出 


// 我们需要检索出值为 Majianan 的元素,通常做法如下: 
for ( var  i = 0 ; i < arrayTest.length;i ++ ){
    if (arrayTest[i] == " MaJianan " 
){
        output 
 =   " 用整数做下标的Array:哈哈! ^+^ \n " 
;
        output 
 =  output  +   "  "   +  i  +   " 次才找到\n " 
;
        output 
 =  output  +   " arrayTest[ "   +  i  +   " ] =  "   + 
 arrayTest[i];
        alert(output);
    }
 else 
{
        output 
 =   " 用整数做下标的Array:555555555 \n " 
;
        output 
 =  output  +   "  "   +  i  +   " 次没有找到\n " 
;
        output 
 =  output  +   " 找到的是arrayTest[ "   +  i  +   " ] =  "   + 
 arrayTest[i]
        alert(output);
    }
}


code 4:

// 使用字符串做数组下标 
var  arrayTest1  =  [];
arrayTest1[
 " blog "  =   " Blog " 
;
arrayTest1[
 " java "  =   " Java " 
;
arrayTest1[
 " majianan "  =   " MaJianan " 


var  key = " majianan " 


if ( typeof (arrayTest1[key]) == " undefined " 
){
    output 
 =   " 用字符串做下标的Array:555555555 \n " 
;
    output 
 =  output  +   " 没找到下标为 "   +  key  +   " 的东东。\n " 
;
    output 
 =  output  +   " 明明没有这个东西,还让我找,耍我呢吧!!! " 
;
    alert(output);
    // do sth 

} else {
    output 
 =   " 用字符串做下标的Array:哈哈! ^+^ 一次搞定\n " 
;
    output 
 =  output  +   " 找到arrayTest1[ "   +  key  +   " ] =  "   + 
 arrayTest1[key];
    alert(output);
    // do sth 



var  key1 = " hello " 


if ( typeof (array[key1]) == " undefined " 
){
    output 
 =   " 用字符串做下标的Array:555555555 \n " 
;
    output 
 =  output  +   " 没找到下标为 "   +  key1  +   " 的东东。\n " 
;
    output 
 =  output  +   " 明明没有这个东西,还让我找,耍我呢吧!!! " 
;
    alert(output);
    // do sth 

} else {
    output 
 =   " 用字符串做下标的Array:哈哈! ^+^ 一次搞定\n " 
;
    output 
 =  output  +   " 找到arrayTest1[ "   +  key1  +   " ] =  "   + 
 arrayTest1[key1];
    alert(output);
    // do sth 



Array的这个特性(用字符串做下标)可以用来高效的检索Unique的字符串集合。
遍历用整数做下标的Array的时间复杂度是O(n),而遍历用字符串做下标的Array的时间复杂度是O(1)。

 

转:http://www.blogjava.net/majianan/archive/2006/11/09/80184.aspx

分享到:
评论

相关推荐

    javaScript array(数组)使用字符串作为数组下标的方法

    这与在对象上操作的方式类似,只是在对象中,字符串下标通常用于表示属性,而在数组中,它们通常用来表示索引,尽管这不是标准的用法。这样做并不会改变数组的长度,`length`属性仍然只反映数字下标的元素数量。 遍...

    Asp与JS的数组和字符串下标介绍

    这种数组和字符串下标不统一的现象在VBScript中可能引发混淆,特别是对那些同时接触JavaScript的开发者。尽管如此,理解这些差异是成为跨平台开发者的关键技能,有助于避免潜在的错误和提高代码的可移植性。 总的来...

    第四讲java数组和字符串.doc

    Java 数组和字符串 Java 数组是一种复合数据类型,由相同类型的数据按照顺序组成。数组名和下标可以用来访问数组中的数据。数组的优点是可以大大简化类似的问题,例如表示一个班 50 个人的数学成绩。数组可以是一维...

    JS获取字符串型数组下标的数组长度的代码

    然而,在JavaScript中,数组的索引也可以是非整数值,比如字符串,这使得JavaScript数组有点类似于对象,可以在属性名不是整数时作为对象使用。以下内容将详细解释如何使用JavaScript获取字符串型数组下标的数组长度...

    javascript中数组(Array)对象和字符串(String)对象的常用方法总结

    在JavaScript中,数组和字符串是两种基本的数据类型,它们各自具有一系列的方法来执行各种操作。正确理解和掌握这些方法对于编写高效和优雅的代码至关重要。 首先,让我们来看看字符串(String)对象的方法。 1. ...

    JavaScript jQuery 中定义数组与操作及jquery数组操作

    在 JavaScript 中,数组是一种特殊的数据结构,可以存储各种类型的数据,包括整型、字符串、对象等。虽然 JavaScript 不直接支持多维数组,但可以通过数组嵌套实现类似的功能。 1. **定义数组** - 定义固定长度的...

    javascript的数组和常用函数详解_.docx

    JavaScript数组提供了许多内置方法,如`push()`(向数组末尾添加元素)、`pop()`(移除并返回数组最后一个元素)、`shift()`(移除并返回数组第一个元素)、`unshift()`(向数组开头添加元素)、`slice()`(提取数组...

    JavaScript数组.pdf

    数组中的每个数据项被称为元素,元素可以是任何类型的数据,包括数字、字符串、甚至是其他数组或对象。 2. 数组声明 在JavaScript中,可以使用数组字面量或Array构造函数来声明数组。 - 使用数组字面量的方式...

    JavaScript数组特性与实践应用深入详解

    JavaScript数组可以包含任意类型的元素,无论是字符串、数字、布尔值,甚至是对象或另一个数组。也就是说,数组中的元素类型不需要一致,这为存储复杂数据结构提供了可能。例如,`var misc = ['string', 11.3, false...

    JavaScript数组操作函数汇总

    JavaScript数组操作函数是编程中非常基础且重要的部分,它们提供了对数组进行各种操作的方法,包括添加、删除、合并以及转换等。以下是对标题和描述中提及的数组操作函数的详细说明: 1. **push()**: `push()` 函数...

    Java入门到架构师教程之JavaScript数组.pdf

    - **下标规则**:下标可为非负整数(包括整数字符串),会自动从0开始填充元素。负数、小数或非数字字符串作为下标时,将被视为自定义属性,不会计入数组长度。 - **遍历注意事项**:`for`循环不遍历属性,`...

    js截取字符串-三种方法

    JavaScript中的字符串截取是编程中常见的操作,主要涉及到三个方法:`slice()`、`substr()` 和 `substring()`。这三个方法都是用来从一个字符串中提取一部分新的字符串,但它们的使用方式和逻辑略有不同。 首先,...

    jquery中push()的用法(数组添加元素)

    push()方法的用法和普通的JavaScript数组的push()方法相同,都允许开发者向一个数组的末尾添加一个或多个元素,并且该方法会修改原数组,返回修改后数组的新长度。需要注意的是,jQuery的push()方法实际上是对...

    js代码-字符串转数组删除指定下标再转成字符串 字符串转数组删除指定元素再转成字符串

    在JavaScript中,字符串和数组是两种非常常见的数据类型。它们各有各的特点,但在某些场景下,我们需要将字符串转换为数组,进行操作后再转回字符串。本篇将详细讲解如何使用JavaScript实现这一过程,并删除指定下标...

    javascript 各种函数用法

    本文将详细介绍 JavaScript 中的数组函数、数字函数、字符串函数、表单验证、HashMap、堆栈、日期函数、call 函数等。 数组函数 JavaScript 中的数组函数提供了多种方法来操作数组,包括: * `push()`: 将参数...

    c++读取解析Json字符串内容

    本篇文章将深入探讨如何在C++中读取并解析JSON字符串内容。 首先,你需要一个C++库来帮助解析JSON。虽然C++标准库并不直接支持JSON,但有许多第三方库可供选择,如 RapidJSON、nlohmann/json 和 Jsoncpp。这里我们...

    javascript中数组array及string的方法总结

    在JavaScript中,数组和字符串是两种非常基础且重要的数据类型,它们各自有一系列的方法用于处理和操作。下面我们将深入探讨这两个部分。 ### 一、数组(array)的方法 1. **`push()`**: 向数组末尾添加一个或多个...

Global site tag (gtag.js) - Google Analytics