#javascript #объекты
Господа, у меня есть объект с разным уровнем вложенности. Как я могу получить то
или иное значение я знаю, ниже есть наглядный пример:
var family = {
adults: {
granddad: {
name: 'Макар',
age: 76,
profession: 'Летчик',
pensioner: 'Да'
},
grandmother: {
name: 'Валентина',
age: 72,
profession: 'Преподователь химии',
pensioner: 'Да'
},
father: {
name: 'Виниамин',
age: 40,
profession: 'Художник',
pensioner: 'Нет'
},
mother: {
name: 'Мария',
age: 38,
profession: 'Бухгалтер',
pensioner: 'Нет'
}
},
сhildren: {
boys: {
adults: {
name: 'Макар',
age: 18,
learning: 'Летное училище'
},
juvenile: {
name: 'Алексей',
age: 17,
learning: 'Средняя школа №1515'
}
},
girls: {
adults: {
name: 'Елизавета',
age: 20,
learning: 'Консерватория'
},
juvenile: {
name: 'Диана',
age: 12,
learning: 'Средняя школа №1515'
}
}
}
};
var objectValues = ['Макар', 76, 'Летчик', 'Да', 'Валентина', 72, 'Преподователь
химии', 'Да', 'Виниамин', 40, , 'Художник', 'Нет', 'Мария', 38, 'Бухгалтер', 'Нет',
'Макар', 18, 'Летное училище', 'Алексей', 17, 'Средняя школа №1515', 'Елизавета', 20,
'Консерватория', 'Диана', 12, 'Средняя школа №1515']
document.getElementById('wrapper').innerHTML += 'Так я получаю все ключи объекта
family:
' + '\
Object.keys(family.adults)
\
' + Object.keys(family) + '
';
document.getElementById('wrapper').innerHTML += 'Так я могу получить любое значение:
' + '\
family.сhildren.boys.adults.name
\
' + family.сhildren.boys.adults.name + '
';
document.getElementById('wrapper').innerHTML += '' + objectValues + '
'
* {
margin: 0;
padding: 0;
}
html,
body {
width: 100%;
height: 100%;
background: #272727;
color: white;
}
#wrapper {
width: 70%;
height: 70%;
font-size: 22px;
padding: 20px;
}
code {
color: orange;
}
p {
color: red;
}
Вопрос: как я могу получить все значения данного объекта (пример список красного
цвета) со всеми вложенными значениями не ссылаясь на ключи. Одним словом я хочу получить
массив как
objectValues
не набирая это все в ручную
Ответы
Ответ 1
var family = { adults: { granddad: { name: 'Макар', age: 76, profession: 'Летчик', pensioner: 'Да' }, grandmother: { name: 'Валентина', age: 72, profession: 'Преподователь химии', pensioner: 'Да' }, father: { name: 'Виниамин', age: 40, profession: 'Художник', pensioner: 'Нет' }, mother: { name: 'Мария', age: 38, profession: 'Бухгалтер', pensioner: 'Нет' } }, сhildren: { boys: { adults: { name: 'Макар', age: 18, learning: 'Летное училище' }, juvenile: { name: 'Алексей', age: 17, learning: 'Средняя школа №1515' } }, girls: { adults: { name: 'Елизавета', age: 20, learning: 'Консерватория' }, juvenile: { name: 'Диана', age: 12, learning: 'Средняя школа №1515' } } } }; Object.values(family.adults).forEach(function(snap) { Object.values(snap).forEach(function(snap2) { document.write(snap2) }); }); Object.values(family.сhildren).forEach(function(snap) { Object.values(snap).forEach(function(snap2) { Object.values(snap2).forEach(function(snap3) { document.write(snap3); }); }); });
Комментариев нет:
Отправить комментарий