说得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);
得到的结果是0
var str = {'name':'javascript','test':'sdsdsdsdsd'}; console.log(str.length);
得到的结果是undefined
所以,最好是自定义函数来计算数组的长度!特别是关联数组和对象数组!
其中,自定义长度函数将用到:
type of
for in
.length
举个栗子:
function a_count(atr) { var s = typeof str;
//if(s == 'string'){}
if(s == 'object'){ if(str.toString().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'){ if(str.toString().length == 0){ return 0; }else{ var i = 0; for(var j in str){ if(str[j].length != undefined){ i = str[j].length; } } return i; } } }
以上栗子不用照搬,是特定数组的算法。具体的写法还是要根据自己的需求来写,先调试看看自己要计算的数组的结构。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/218550.html原文链接:https://javaforall.net
