在运行时动态获取javascript中数组成员的名称

Getting the names of members of an array in javascript dynamically at runtime

本文关键字:组成员 数组 运行时 动态 获取 javascript      更新时间:2023-09-26

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

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

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

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

这里,Result是具有member_name1member_name2等成员的对象的名称,并且theu分别具有value_1value_2等值。我想做的是在运行时获得像member_name1this这样的成员的名称;不是它的价值。我通常通过Results.member_name1访问该值。

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

以下是对象的屏幕截图:

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

谢谢!

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

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

但是,请注意,这也将获取通过其类的prototype属性对obj进行的任何扩展。如果你想排除这些,并且只得到obj本身定义的属性,你可以用过滤掉它们

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

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

您可以使用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*的空数组和您的数据对象。在我们的循环中,i将引用属性名称,因此您可以将其推送到member_names数组中,然后可以在那里访问所有这些名称。