为什么99 in arr1可以返回true,而98 in arr1 返回的事flase

来源:5-2 [JavaScript]二维数组、稀疏数组

MissHoya

2015-03-25 14:35

如题,为什么99 in arr1可以返回true,而98 in arr1 返回的事flase

写回答 关注

5回答

  • Bosn
    2015-03-26 11:44:13
    已采纳

    这就是稀疏数组啊,例如:

    var arr = [];

    arr[99] = 1;

    99 in arr; // true

    98 in arr; // false


    虽然通过arr[99]使得数组长度变为100,但JavaScript并不会自动创建从0 ~ 98的其它Key。

    这就是稀疏数组。

    MissHo...

    非常感谢!

    2015-06-03 17:07:32

    共 1 条回复 >

  • 向死而生3491500
    2016-10-26 16:12:20

    var arr=[1];
                arr[99]=100;
                for(var i=0;i<arr.length;i++){
                    document.write(arr[i]);
                }


    输出结果:1 undefine。。。100;


    中间虽然没赋值,但系统默认都是undefine,所以说数组索引下的98下没有值,返回false

  • Down_Up
    2016-04-26 12:31:16

    因为下标为99的位置有值,而下标为98的位置没有值!

  • 王国
    2015-03-25 15:08:31

    ewfesgsrdgdrtt

  • 王国
    2015-03-25 15:08:03

    asdfsdrgdsrg

JavaScript深入浅出

由浅入深学习JS语言特性,且解析JS常见误区,从入门到掌握

281111 学习 · 1020 问题

查看课程

相似问题