#javascript #arrays #object #javascript-objects
#javascript #массивы #объект #javascript-объекты
Вопрос:
Я хотел бы реорганизовать блок кода, который в основном должен сопоставлять 2 уровня с данными, которые я хочу. Данные, которые я хочу, — это значение body в объекте, который содержит [‘key’], который имеет массив объектов.
Мой объект выглядит следующим образом,
const object = {
"array-one": [
{
id: 1,
body: "need_help",
},
{
id: 2,
body: "no_help",
},
],
}
и ниже показано, как я сопоставляю, чтобы получить значение body
const getTheBodyValue = () => Object.keys(object).map(key => {
object[key].map((elem) => {
const { id, body } = elem;
if (body === 'need_help') // do something
if (body === 'no_help') // do something
});
});
есть ли более простой способ получить значение body в «array-one» и «array-two»?
Комментарии:
1. почему вы берете внутреннее
map
значение, не используя результат? что вы делаете внутри предложений?2. @NinaScholz Мне нужно получить доступ к значению body, вот и все. Я не могу получить к нему доступ без внутренней карты.
3. Не используйте
map
для перебора вещей. ИспользуйтеforEach
илиfor
цикл. Используетсяmap
для создания нового массива.
Ответ №1:
Вы могли бы сгладить значения из объекта и выполнить один цикл.
Object
.values(object)
.flat()
.forEach(({ id, body }) => {
// your code
})