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