作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
只是想知道,当您使用 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/
我是一名优秀的程序员,十分优秀!