gpt4 book ai didi

javascript - 在 JavaScript 中计算绝对数组长度的最佳方法是什么?

转载 作者:数据小太阳 更新时间:2023-10-29 04:07:22 25 4
gpt4 key购买 nike

只是想知道,当您使用 array.length 时,它会获取最后一个索引值并加一。如果您有一个数组,出于某种原因以这种方式定义怎么办:

    var myArray2 =[];
myArray2[10]='x';
myArray2[55]='x';

获得这个数组的真实长度的绝对最佳方法是什么?将返回 2 作为值的东西。

我在想这样的事情,但不确定是否已经有这种方法,或者是否有更快的实现。

Array.prototype.trueLength= function(){
for(var i = 0,ctr=0,len=myArray2.length;i<len;i++){
if(myArray2[i]!=undefined){
ctr++;
}
}
return ctr;
}
console.log(myArray2.trueLength());

最佳答案

Array.prototype.reduce仅遍历现有索引,因此您可以:

var length = myArray2.reduce(function(sum) {
return sum+1;
}, 0);

“但是 Zirak 叔叔!reduce 杀了我的 parent !”别担心,小家伙,我们可以使用 Array.prototype.filter!

var length = myArray2.filter(function(item, idx) {
return idx in myArray2;
}).length;

“所有这些数组的东西都很无聊!”嗯,你觉得这个怎么样!?

Object.keys(myArray2).length;

“但是...但是...但是 Zirak!!!!我们是阿米什人,我们还没有 ECMAScript 5!”别害怕,Zirak 就在这里!

for (var length = 0, i = 0; i < myArray2.length; i++) {
if (i in myArray2) {
length += 1;
}
}

但在这种时候,人们不得不怀疑:为什么要这样做并违背数组(一种结构化构造)的目的,而不是使用其他适合其目的的东西?

关于javascript - 在 JavaScript 中计算绝对数组长度的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12619572/

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