gpt4 book ai didi

javascript - 在 Javascript 中查找数组长度

转载 作者:可可西里 更新时间:2023-11-01 02:54:01 26 4
gpt4 key购买 nike

这听起来是个很愚蠢的问题。我们如何在 JavaScript 中找到数组的确切长度;更准确地说,我想找到数组中占据的总位置。

我有一个简单的场景,我想你们中的大多数人可能都知道。

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

现在如果我给

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

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

最佳答案

您要查找的不是数组的长度,而是该数组中分配的数值。

Array.length不会给你那个结果,而是分配的值的总数。

一个解决方法是计算数组后面对象的属性,使用:

Object.keys(a).length

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

但有一些注意事项:

  • 它还会计算文字属性,例如 a.a_property。我不认为那是你想要的。因此,您必须过滤该结果:

!(+el % 1)检查是否el即使它具有字符串类型,也可以被视为数字属性。

  • 你只想计算正整数,所以你必须用以下方法过滤它们:

+el>=0

  • 最后,由于数组大小限制为 2^32,您还需要过滤大于该值的正整数:

+el < Math.pow(2,32)

在功能上,您将使用此过滤器获得结果:

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

关于javascript - 在 Javascript 中查找数组长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28811911/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com