簡體   English   中英

如何從 React 中的道具循環嵌套的 object?

[英]How to loop nested object from props in React?

我正在嘗試從這些道具構建一個 obj model:

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}
            ]
        },

    ]
}

我在映射屬性數組時遇到困難,map 這個嵌套數組的正確方法是什么? 這是我的嘗試:

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

具體來說,這部分不起作用(我認為因為它是地圖中的 map):

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

循環屬性以獲取每個 id 和 value 的正確方法是什么

它應該是item.attributes.map例如

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

 const 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: data.details.map(item => ({ id: item.id, attributes: item.attributes.map(attr => ({ id: attr.id, value: attr.value, })), })), } console.log(objModel)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM