1

首先,我不确定在 javascript 中是否真的可行,但我仍然觉得值得一问。

好的,所以我要做的是在运行时动态获取数组(或您可能说的对象)成员的名称。

让我解释。我有一个这样的对象:

Results :-
member_name1 : value_1
member_name2 : value_2
member_name3 : value_3

这里,Result是对象的名称,它具有、 等成员member_name1,并且它们分别具有 和 之类的值。我要做的是在运行时获取这样的成员的名称;不是它的价值。我通常通过访问该值。member_name2value_1value_2member_name1Results.member_name1

我希望我能够描述这个问题!

以下是该对象的屏幕截图:

http://i.stack.imgur.com/dzAgm.png

谢谢!

4

2 回答 2

3

假设obj是您的对象,您可以通过以下方式获取其所有属性的名称:

var names = [];

for(var name in obj) {
    names.push(name);
}

但是,请注意,这还将获取obj通过prototype其类的属性进行的任何扩展。如果您想排除这些并且只获取对其obj自身定义的属性,您可以使用

for(var name in obj) {
    if(obj.hasOwnProperty(name)) {
        names.push(name);
    }
}

for...in 有关MDN的更多信息。

于 2012-03-02T08:15:12.077 回答
1

您可以使用 JavaScript 访问它们进行构造。考虑以下:

var member_names = [],
    data = {
        foo1: 'bar1',
        foo2: 'bar2',
        foo3: 'bar3',
    };

​for (var i in data) {
    member_names.push(i);
}

console.log(member_names);

​这里我们有一个名为 *member_names* 的空数组和您的数据对象。在我们的循环中,将引用属性名称,因此您可以将其推送到 member_names 数组中,然后在那里访问它们。

于 2012-03-02T08:17:40.933 回答