JS数组的长度问题说得js获取数组长度,相信都会第⼀时间想到array.length
但是,.length有明显的缺陷:
⽐如:
var str = [];
str[99] = 99;
console.log(str.length);
得到的结果是100
var str = [];
str['name'] = 'javascript';
str['test'] = 'sdsdsdsdsd';
console.log(str.length);
得到的结果是0typeof array
var str = {'name':'javascript','test':'sdsdsdsdsd'};
console.log(str.length);
得到的结果是undefined
所以,最好是⾃定义函数来计算数组的长度!特别是关联数组和对象数组!
其中,⾃定义长度函数将⽤到:
type of
.toString().length
for in
.length
举个栗⼦:
function a_count(atr) {
var s = typeof str;
//if(s == 'string'){}
if(s == 'object'){
String().length == 0){
return 0;
}else{
var i = 0;
for(var j in str){
if(str[j].length != undefined){
i++;
}
}
return i;
}
}
}
function b_count(str) {
var s = typeof str;
if(s == 'object'){
String().length == 0){
return 0;
}else{
var i = 0;
for(var j in str){
if(str[j].length != undefined){
i = str[j].length;
}
}
return i;
}
}
}
以上栗⼦不⽤照搬,是特定数组的算法。具体的写法还是要根据⾃⼰的需求来写,先调试看看⾃⼰要计算的数组的结构。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论