карта внутри карты в nodejs - PullRequest
0 голосов
/ 29 февраля 2020

Предположим, у меня есть этот ответ

[
  {
    "userId": "5e5a0be699e0e4449829c444",
    "stepId": ["5e1d82156a67173cb877f67d", "5e5906dfc749dc4498033f7e"],
    "stepCount": 1,
    "stepode": "ST01"
  },
  {
    "userId": "5e5a0be699e0e4449829c444",
    "mappedToDealers": ["5e1d82156a67173cb877f67d", "5e5906dfc749dc4498033f7e"],
    "stepCount": 40,
    "stepode": "BD01"
  }
];

Я пытаюсь создать sh это в новый объект, так что я могу получить отдельные объекты в соответствии с stepId, т.е.

[
  {
    "userId": "5e5a0be699e0e4449829c444",
    "stepId": "5e1d82156a67173cb877f67d",
    "stepCount": 1,
    "stepode": "ST01"
  },
  {
    "userId": "5e5a0be699e0e4449829c444",
    "stepId": "5e5906dfc749dc4498033f7e",
    "stepCount": 1,
    "stepode": "ST01"
  },
  {
    "userId": "5e5a0be699e0e4449829c444",
    "stepId": "5e1d82156a67173cb877f67d",
    "stepCount": 40,
    "stepode": "BD01"
  },
  {
    "userId": "5e5a0be699e0e4449829c444",
    "mappedToDealers": "5e5906dfc749dc4498033f7e",
    "stepCount": 40,
    "stepode": "BD01"
  }
];

i Подумайте .map или forEach дважды, один внутри другого, но я не смог получить желаемый результат.

1 Ответ

0 голосов
/ 29 февраля 2020

Как насчет reduce и forEach?

data = response

data.reduce((res, obj) => {
  obj.stepId.forEach(stepId => {
    res.push({
      ...obj,
      stepId
    });
  });
  return res;
}, []);

Мы создаем новый массив и заполняем его объектами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...