Реорганизуйте Object.keys(объект).map, чтобы получить значение вложенного массива. JavaScript

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