开发者问题收集

如何按名称计算 JavaScript 对象中嵌套的数组数量

2014-02-22
67

我有一个通用函数,需要检查命名数组中的项目数,但我不知道该叫什么名字。有办法吗?

数组:

// added array example here per request:
var myArray = { "name": "myname", "data": [ "item1": [1], "item2": [2,3,4,5,6,7,8,9], "item3": [41,42,51,491]}

// where length is the number of objects in the array.
var mycount = someitem.getProperty("UnknownName").length;  

我想要做的是调用一些执行此操作的函数:

var mycount = specialCountFunction(someitem, name);
2个回答

在您的 specialCountFunction() 中,以字符串形式接收属性名称,然后在 item 后使用方括号来评估字符串的值,以便将其用作属性名称。

function specialCountFunction(item, name) {
    return item[name].length;
}

因此您可以这样调用它:

var name = "whatever_the_name_is";
var count = specialCountFunction(someitem, name);
cookie monster
2014-02-22

你的意思是获取对象中数组的长度?

例如,你的对象

var obj = {
    "children": [ "john", "mark", "sam" ]
}

使用 obj["children"].length

或者获取对象的长度?

Object.size = function(obj) {
    var size = 0, key;
    for (key in obj) {
        if (obj.hasOwnProperty(key)) size++;
    }
    return size;
};

// Get the size of an object
var size = Object.size(obj);

Faiz Shukri
2014-02-22