Javascript 数组下标

知识共享许可协议 版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons

1、下面使用JavaScript数组下标,我们看示例吧。

为数组下标指定负值:

var a = [];                 // 定义空数组直接量

a[-1] = 1;                  // 为下标为-1的元素赋值

 

alert(a.length);            // 返回值为0,说明数组长度没有增加

alert(a[-1]);                // 返回1,说明这个元素还是存在的

alert(a["-1"]);             // 返回1,说明这个值以对象属性的形式被存储

 

var a = [];

a[true] = 1;

a[false] = 0;

alert(a.length);            // 返回值为0,说明数组长度没有增加

alert(a[true]);             // 返回值为1

alert(a[false]);            // 返回值为0

alert(a[0]);                // 返回undefined

alert(a[1]);                // 返回undefined

 

a["1"] = 1;

alert(a[1]);                // 返回值为1

2、这种数据格式被称为哈希表(或称关联数组,伪数组),哈希表的数据检索速度要优于数组迭代检索。对于下面操作:

var a = [["张三",1],["李四",2],["王五",3]]; // 二维数组

for(var i in a){                           // 遍历二维数组

    if(a[i][0] == "李四") alert(a[i][1]) ; // 检索指定元素

}

 

var a = [];                            // 定义空数组

a["张三"] = 1;                         // 以文本下标来存储元素的值

a["李四"] = 2;

a["王五"] = 3;

alert(a["李四"] );                     // 快速定位检索

3、JavaScript不支持二维数组,用户可以模仿二维数组的语法格式来定义数组。下面写法在语法上虽然不符合规定,但是JavaScript不会提示编译错误:

var a = [];

a[0,0] = 1;

a[0,1] = 2;

a[1,0] = 3;

a[1,1] = 4;

 

alert(a.length);                // 返回2,说明仅有两个元素有效

alert(a[0]);                    // 返回3

alert(a[1]);                    // 返回3

 

var a = [], i = 1;             // 初始化变量

while( i < 10 ){                // 指定循环次数

    a[i *= 2 , i] = i;          // 指定下标为2的幂数时才进行赋值

}

alert( a.length );              // 返回17

alert( a );                     // 返回数组[,,2,, 4,,,, 8,,,,,,,, 16]

4、对象也可以作为数组下标,JavaScript会试图把对象转换为数值,如果不行,则把它转换为字符串,然后以文本下标的形式进行操作。

var a = [];                     // 数组直接量

var b = function(){             // 函数直接量

    return 2;

}

a[b] = 1;                       // 把对象作为数组下标

alert( a.length );              // 返回长度为0

alert( a[b] );                  // 返回1

 

var s =b.toString();            // 获取对象的字符串

alert( a[s] );                  // 利用文本下标读取元素的值

 

a[b()] = 1;                     // 在下标处调用函数,则返回值为2

alert( a[2] );                  // 所以可以使用2来读取该元素值

 

 

猜你喜欢

转载自blog.csdn.net/sakenc/article/details/91781851
今日推荐