javascript数组长度问题

    var arr = [];
    arr[0]  = 'a';
    arr[1]  = 'b';
    arr.foo = 'c';
    console.log(arr.length);//2  为什么不是3呢
阅读 7.9k
4 个回答

http://es5.github.io/#x15.4.5.2

length返回的是array的数组索引长度,数组索引只能是数字,如果是字符串的相当于对象属性了。

arr.foo = 'c';执行后arr仍然是["a", "b"]

数据不支持arr.foo赋值
可以使用
arr[2] = 'c'

  var arr = [];
    arr[0]  = 'a';
    arr[1]  = 'b';
    arr.length = 9;
    console.log(arr.length);//9
    console.log(arr[3]);//undefined 
新手上路,请多包涵

arr.foo = 'c'这只是arr的一个属性,而不是其数组元素,所以结果是['a','b'];

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
1 篇内容引用
推荐问题