奇葩的JS数组

作者: 一口咖啡一口茶 | 来源:发表于2015-07-07 22:27 被阅读87次

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循环,循环举出的讲师下标,而不是对应的值

相关文章

  • 奇葩的JS数组

    JavaScript的数组是JavaScript原生的唯一的复杂数据结构,这点有点类似于php。(JSON是一种轻...

  • js 数组链接concat,和数组转字符串join,字符串转数

    js 数组链接用concat js 数组转成字符串 js 字符串转数组

  • js数组题目

    js面试题 js数组 一、按要求分割数组 将"js,数组,分类"字符串数组以/分割 for循环累加 join()把...

  • js 数组

    js 中数组的长度发生改变,数组就真的发生改变,快速清空数组就让数组长度为0js 数组的方法

  • JS数组以及数组变换

    有关数组 数组对象——一种特殊的对象JS其实没有数组,只使用对象来模拟数组 典型数组和JS数组的区别 典型数组 元...

  • 概念集合

    JS中的数组和Arrary的区别 js中的数组就是array对象

  • 数组检测

    检测是否是数组: 数组转字符串: 字符串转换数组: js对象转换成js字符串: js字符串转换成js对象:

  • JS 数组

    JS 数组是一种特殊的对象,不是真正的数组,它只##是通过对象来模拟数组。 JS 数组的定义 let arr = ...

  • 数组

    数组的定义: js:存储多个相同类型数据 ,有序的数据;php数组 1,:索引数组,同js;声明:$arrName...

  • javaScript的数组

    js中没有数组类型 js 中数组是以内置对象的形式存在 数组定义01 var attr = new Array('...

网友评论

本文标题:奇葩的JS数组

本文链接:https://www.haomeiwen.com/subject/sigyqttx.html