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);
得到的结果是0
var str = {"name":"javascript","test":"sdsdsdsdsd"}; console.log(str.length);
所以,最好是自定义函数来计算数组的长度!特别是关联数组和对象数组!
其中,自定义长度函数将用到:
type of
.toString().length
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; } } }
以上栗子不用照搬,是特定数组的算法。具体的写法还是要根据自己的需求来写,先调试看看自己要计算的数组的结构。
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇: mysql慢查询和php-fpm慢日志