奇葩的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循环,循环举出的讲师下标,而不是对应的值
相关文章推荐
- json转换为map
- 项目____js实现重新提交表单&&避免重新提交表单
- DataTable转为JSON数据格式代码
- js如何终止程序
- JS高级程序设计读书笔记(第七章)
- knockoutJS学习笔记05:控制文本和外观绑定
- 无限滚动js
- MyEclipse修改默认的Servlet和jsp代码内容
- JS实现鼠标双击页面向下滚动,单击停止的特效
- Json解析 Json数据文件 例子
- ewebeditor上传文件大小及在线编辑器jsp版使用心得
- JSP标签实现分页功能(ORM-mybatis)
- js数组去重的三种常用方法总结
- javascript浏览器匹配
- JavaScript得到屏幕宽高、页面宽高
- Js获取当前日期时间及其它操作
- JavaScript继承方式详解
- js数组算法总结
- JS~字符串长度判断,超出进行自动截取(支持中文)
- Json