Как l oop вложенный объект из props в React? - PullRequest
0 голосов
/ 16 июня 2020

Я пытаюсь построить модель 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
    }
))

Каков правильный способ l oop атрибуты для получения каждого идентификатора и значения

Ответы [ 2 ]

1 голос
/ 16 июня 2020

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)
1 голос
/ 16 июня 2020

Это должно быть item.attributes.map например

attributes: item.attributes.map(attr => (
    {
        id: attr.id,
        value: attr.value
    }
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...