JavaScript-js 关联数组长度计算方法

发布于 2017-01-19 03:19:30 字数 252 浏览 1284 评论 3

下面是我定义了一个关联数组:

var myArray = new Array();
myArray["uid"] = "123456";
myArray["username"] = "huhuhu";
myArray["nickname"] = "lalala";
myArray["sex"] = "man";
alert(myArray.length);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

浮生未歇 2017-04-12 00:49:18

按照你的需求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));

虐人心 2017-02-05 09:38:07

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

浮生未歇 2017-01-31 18:04:30
var myArray = new Array();
myArray["uid"] = "123456";
myArray["username"] = "huhuhu";
myArray["nickname"] = "lalala";
myArray["sex"] = "man";
alert(Object.keys(myArray).length);

如果是多维的话,需要利用循环递归的办法计算
不支持的话,只能遍历了

Object.size = function(obj) {
    var size = 0, key;
    for (key in obj) {
        if (obj.hasOwnProperty(key)) size++;
    }
    return size;
};
alert(Object.size(myArray));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文