Получение имен членов массива в javascript динамически во время выполнения
Прежде всего, я не уверен, возможно ли это на самом деле в javascript, но все же я чувствовал, что стоит спросить.
Итак, что я пытаюсь сделать, это получить имена членов массива (или объекта, как вы могли бы сказать) динамически во время выполнения.
Позволь мне объяснить. У меня есть такой объект:
Results :-
member_name1 : value_1
member_name2 : value_2
member_name3 : value_3
Вот, Result
это имя объекта, который имеет такие элементы, как member_name1
, member_name2
и т. д., и те имеют такие значения, как value_1
а также value_2
соответственно. То, что я пытаюсь сделать, это получить имя таких членов, как member_name1
это во время выполнения; не это ценность. Я получаю доступ к значению Results.member_name1
в общем-то.
Я надеюсь, что смогу изобразить проблему!
Ниже приведен скриншот объекта:
Спасибо!
2 ответа
Если предположить, 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.
Вы можете получить к ним доступ, используя 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 и затем получить доступ ко всем им там.