您的位置:首页 > Web前端 > JavaScript

奇葩的JS数组

2015-09-22 17:14 591 查看

奇葩的JS数组

JavaScript
的数组是
JavaScript
原生的唯一的复杂数据结构,这点有点类似于
php
。(
JSON
是一种轻量级数据交换格式)

类似于
php
,
JavaScript
的数组也是接受自定义下标,当不指定下标时,才使用默认下标。这就会有问题了,如下代码:

var a = [];
a['h'] = 2;
console.log(a.length);


你们猜猜这个数组大长度打印出多少?

0


我明明传入一个元素进入了数组
a
中,为什么使用
length
得到却是
0
呢。如果用下面的一个例子,可能会更加直观的说明问题。

var a = [];
a[10] = 2;
console.log(a.length);


这次会打印的结果:

11


这说明了,在JavaScript中,数组的长度是根据循序下标的最大来计算的。所以,当我使用
a[10] = 2;
时,这个数组的
length
属性便通过这个最大的下标而得出。

这也就说明了为什么第一个例子中,我传入了一个自定义下标的元素,但是
length
属性依旧是
0


我的经验是,慎用自定义下标的
JavaScript
数组。因为对一个数组来说,简单直白的定义,
length
这个属性才不至于荒废。真正需要用到灵活的数据结构的时候,我推荐
JSON+数组
的方式,相信可以基本解决问题了。

注意:对自定义下标的数组,使用
for
循环,循环举出的讲师下标,而不是对应的值
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: