为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

正在回答

5 回答

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

var arr = [];

arr[99] = 1;

99 in arr; // true

98 in arr; // false


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

这就是稀疏数组。

0 回复 有任何疑惑可以回复我~
#1

MissHoya 提问者

非常感谢!
2015-06-03 回复 有任何疑惑可以回复我~

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


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


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

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

ewfesgsrdgdrtt

0 回复 有任何疑惑可以回复我~

asdfsdrgdsrg

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信