关键词搜索

源码搜索 ×
×

javascript 数组与json的混合怪物

发布2017-11-27浏览663次

详情内容

众所周知,javascript的变量是可变类型,说变就变。这是优点,有很大的灵活性,但有时一不小心,又会让人因为未反应过来,而导致一些困惑。

比方说,有个数组:

var arr = ['a','b','c'];
alert(arr.length);//3

arr['a'] = 'A';
alert(arr.length);//数组长度没变,还是3

alert(arr['a'] + "," + arr.a);//A,A。说明arr['a'] == arr.a
alert(arr['a'] === arr.a);//true
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

原本arr只是一个单纯的数组,但有赋值语句arr['a'] = 'A'之后,arr变成了一个怪物:数组与json的混合体:

["a", "b", "c", a: "A"]

其中a不知为何,并不是数组的元素,数组的长度还是3。

arr.forEach(function(a){
    alert("foreach:" + a);
});//分别提示a,b,c
  • 1
  • 2
  • 3

由于forEach只遍历数组元素,所以上述语句,arr.a并不能被检视出来。所以,为保险起见,最好还是用以下语句,避免疏漏。

for(var i in arr){
    alert("for:" + arr[i]);
}//分别提示a,b,c,A
  • 1
  • 2
  • 3

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载