Получение имен членов массива в 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 и затем получить доступ ко всем им там.

Другие вопросы по тегам