在Javascript中查找数组长度

前端之家收集整理的这篇文章主要介绍了在Javascript中查找数组长度前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这听起来是一个非常愚蠢的问题.我们怎样才能在 JavaScript中找到数组的确切长度;更确切地说,我想找到阵列中占据的总位置.

我有一个简单的场景,我猜大多数人可能都知道.

var a = [1,2,3];
a.length; //This will output 3

现在,如果我给

a[100] = 100;
a.length; // The output is 101;

我想得到数组的确切大小,在上面的例子中应该是4.

解决方法

这将为您提供数组中真正存在的元素数量
Object.keys(a).length

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array#Relationship_between_length_and_numerical_properties

编辑

正如JLRishe的评论所指出的,Object.keys(a).length返回对象a中存在的键的数量.
如果我添加这样的键:

a= [1,3];
a['key']= "akey";

然后
Object.keys(a).length将返回4

但“key”不是数组的一部分,它是数组Object的属性,
console.log(a)给你[1,3].

因此,要获得更可靠的数组元素数量值,我们只需计算正整数键值:

Object.keys(a).filter(function(el){return !(+el % 1) && +el>=0 && +el < Math.pow(2,32) ;}).length

Object.keys返回一个String数组.使用[‘1’]或[1]在数组中赋值是等效的.数组索引键也必须小于2 ^ 32.

猜你在找的JavaScript相关文章