相关疑难解决方法(0)

Array.length给出了不正确的长度

如果我有一个数组,其对象作为索引的值,如:

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.示范

javascript arrays

18
推荐指数
2
解决办法
2万
查看次数

标签 统计

arrays ×1

javascript ×1