необходимо создать новый массив с именем result с ключом / значением из записей и внутри этого массива отзывов с объектами пользователя и комментария key / value - PullRequest
0 голосов
/ 20 июня 2019

Для следующих входных данных:

    let posts = [
        {
            "id": 101,
            "title": "Some post title"
        },
        {
            "id": 102,
            "title": "Some Another post title"
        },
        {
            "id": 103,
            "title": "Some Best post title ever"
        }
    ]

    let reviews = [
        {
            "postId": 101,
            "user": "Chris",
            "comment": "Great post!"
        },
        {
            "postId": 101,
            "user": "Jason",
            "comment": "Worth reading."
        },
        {
            "postId": 102,
            "user": "Dave",
            "comment": "Waste of time"
        }
    ]

Я хотел бы вернуть эти результаты:

    let result = [{ id: 101, title: "Some post title", reviews: [{ user: "John", Comment: "Great post!" }] }]

может получать только значения, но нуждается в массиве обзоров без идентификатора и должен быть внутри нового результата с идентификатором поста и заголовком

1 Ответ

0 голосов
/ 20 июня 2019

Используйте map с filter:

let posts = [{
    "id": 101,
    "title": "Some post title"
  },
  {
    "id": 102,
    "title": "Some Another post title"
  },
  {
    "id": 103,
    "title": "Some Best post title ever"
  }
]

let reviews = [{
    "postId": 101,
    "user": "Chris",
    "comment": "Great post!"
  },
  {
    "postId": 101,
    "user": "Jason",
    "comment": "Worth reading."
  },
  {
    "postId": 102,
    "user": "Dave",
    "comment": "Waste of time"
  }
]

const res = posts.map(({
  id,
  title
}) => ({
  id,
  title,
  reviews: reviews.filter(({
    postId
  }) => postId == id).map(({
    user,
    comment
  }) => ({
    user,
    comment
  }))
}));

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