Javascript 数组下标

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来读取该元素值

 

 

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值