Страницы

Поиск по вопросам

понедельник, 18 февраля 2019 г.

Как получить все значения Объекта не перебирая ключи и не ссылаясь на них

Господа, у меня есть объект с разным уровнем вложенности. Как я могу получить то или иное значение я знаю, ниже есть наглядный пример:
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
не набирая это все в ручную


Ответ

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); }); }); });

Комментариев нет:

Отправить комментарий