首页 > 解决方案 > 如何从 React 中的道具循环嵌套对象?

问题描述

我正在尝试从这些道具构建一个 obj 模型:

cars.data: {
    details: [
        {
             id: Audi,
             attributes: [
                {id: audi1, value: 1},
                {id: audi2, value: 2},
                {id: audi3, value: 3}
            ]
        },
        {
             id: BMW,
             attributes: [
                {id: bmw1, value: 1},
                {id: bmw2, value: 2},
                {id: bmw3, value: 3}
            ]
        },
        {
             id: Merc,
             attributes: [
                {id: merc1, value: 1},
                {id: merc2, value: 2},
                {id: merc3, value: 3}
            ]
        },

    ]
}

我在映射属性数组时遇到困难,正确映射这个嵌套数组的正确方法是什么?这是我的尝试:

const objModel = {
    details: [
        props.cars.data.details.map(item => (
            {
                id: item.id,
                attributes: [
                    item.map(item => (
                        {
                            id: item.attributes.id,
                            value: item.attributes.value
                        }
                    ))
                ]
            }
        ))
    ]
}

具体来说,这部分不起作用(我认为因为它是地图中的地图):

item.map(item => (
    {
        id: item.attributes.id,
        value: item.attributes.value
    }
))

循环属性以获取每个 id 和 value 的正确方法是什么

标签: javascriptreactjsloops

解决方案


它应该是item.attributes.map例如

attributes: item.attributes.map(attr => (
    {
        id: attr.id,
        value: attr.value
    }
)

推荐阅读