首先,我不确定它是否真的可以在javascript中使用,但我仍觉得值得一提。
好的,所以我要做的是在运行时动态获取数组成员(或者你想说的对象)的名称。
让我解释一下。我有一个像这样的对象:
Results :-
member_name1 : value_1
member_name2 : value_2
member_name3 : value_3
此处,Result
是包含member_name1
,member_name2
等成员的对象的名称,而theu的值分别为value_1
和value_2
。我想要做的是在运行时获取像member_name1
这样的成员的名字;不是它的价值。我通常会Results.member_name1
访问该值。
我希望我能够描述这个问题!
以下是该对象的屏幕截图:
http://i.stack.imgur.com/dzAgm.png
谢谢!
答案 0 :(得分: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
on MDN的更多信息。
答案 1 :(得分:1)
您可以使用JavaScript for 构造来访问它们。请考虑以下事项:
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数组,然后可以访问它们。