如果我有一个数组,其对象作为索引的值,如:
var a = [];
a[21] = {};
a[90] = {};
a[13] = {};
alert(a.length); // outputs 91
Run Code Online (Sandbox Code Playgroud)
我找到了一个解决方法来获取实际长度:
function getLength(arr) {
return Object.keys(arr).length;
}
var a = [];
a[21] = {};
a[90] = {};
a[13] = {};
alert(getLength(a));
Run Code Online (Sandbox Code Playgroud)
但是,当对象存储在随机索引时,为什么JS会给出不正确的长度?它只是在数组上找到的最大索引加1.与上面的例子一样,90是最大的指数.它只增加1并输出91.示范