JavaScript-js 关联数组长度计算方法
下面是我定义了一个关联数组:
var myArray = new Array();
myArray["uid"] = "123456";
myArray["username"] = "huhuhu";
myArray["nickname"] = "lalala";
myArray["sex"] = "man";
alert(myArray.length);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
按照你的需求myArray的类型object了,所以你要的是计算这个对象的属性个数
我写了一个函数你试一下
function getObjLength(obj){
var count=0;
for(var name in obj){
if(typeof obj[name] == "object"){
count+=getObjLength(obj[name]);
}else{
count++;
}
}
return count;
}
alert(getObjLength(myArray));
phpjs上的一个count函数:
function count (mixed_var, mode) {
// Count the number of elements in a variable (usually an array)
//
// version: 1109.2015
// discuss at: http://phpjs.org/functions/count // + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// + input by: Waldo Malqui Silva
// + bugfixed by: Soren Hansen
// + input by: merabi
// + improved by: Brett Zamir (http://brett-zamir.me) // + bugfixed by: Olivier Louvignes (http://mg-crea.com/)
// * example 1: count([[0,0],[0,-4]], 'COUNT_RECURSIVE');
// * returns 1: 6
// * example 2: count({'one' : [1,2,3,4,5]}, 'COUNT_RECURSIVE');
// * returns 2: 6
var key, cnt = 0;
if (mixed_var === null || typeof mixed_var === 'undefined') {
return 0;
} else if (mixed_var.constructor !== Array && mixed_var.constructor !== Object) {
return 1;
}
if (mode === 'COUNT_RECURSIVE') {
mode = 1; }
if (mode != 1) {
mode = 0;
}
for (key in mixed_var) {
if (mixed_var.hasOwnProperty(key)) {
cnt++;
if (mode == 1 && mixed_var[key] && (mixed_var[key].constructor === Array || mixed_var[key].constructor === Object)) {
cnt += this.count(mixed_var[key], 1); }
}
}
return cnt;
}
如果是多维的话,需要利用循环递归的办法计算
不支持的话,只能遍历了