Не удается отобразить массив объектов в JavaScript

#javascript #reactjs #mapping

#javascript #reactjs #сопоставление

Вопрос:

Как мне отобразить массив объектов ниже, где я хочу отобразить как Module1, так и его вложенные модули?

 const data = [
    {
        module1 : ["submod1", "submod2"]
    },
    {
        module2 : ["submod3", "submod4"] 
    }
]
 

Я также хочу передать «module1» и его массив в качестве реквизита другому компоненту.

Ожидаемый результат

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

1. Каков ожидаемый результат?

2. как выглядит результат?

3. Я добавил ожидаемый результат в виде изображения в конце описания. пожалуйста, проверьте

Ответ №1:

Для извлечения module1:

 const module1Array = data[0].module1.map(sm=> {
        return sm
    }
     );
 

Чтобы получить все массивы подмодулей в новом массиве:

 const modulesArray = data.map(m => {
    return Object.values(m)[0];
})
 

Почему бы просто не передать данные в качестве реквизита и не сопоставить их в вашем компоненте? ->

 const Example = (data) => {

    const modules = data.map(m => {
            return (
            <div>
            <h1>{Object.keys(m)}</h1>
            <p>{Object.values(m)}</p>
            </div>)
        })

     return (
            <div>
                {modules}
            </div>
        )
    }

export default Example
 

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

1. я также хочу вернуть module1 и module2. ваш код очень специфичен для подмодулей модуля 1

2. Вы должны быть более конкретны с ожидаемым результатом. Изображение, которое вы предоставляете, уже похоже на структуру «данных». Я отредактировал свой пост, чтобы включить способ получения всех вложенных массивов в новый массив.

3. спасибо за вашу помощь. но что, если я также хочу вернуть «module1» вместе с его подмодулями. я хочу передать основной модуль («Module1») и его вложенные модули (submod1, submod2) как отдельные реквизиты для компонента. Как я могу это сделать?