JS数组的长度问题

来源:互联网 发布:查看windows激活状态 编辑:程序博客网 时间:2024/06/06 02:17

说得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

.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;        }    }}

以上栗子不用照搬,是特定数组的算法。具体的写法还是要根据自己的需求来写,先调试看看自己要计算的数组的结构


1 0
原创粉丝点击