Объединение книг и рецензий (Books and Reviews Merge)
2
Словари
Условие
Даны два массива:
books— список книг;reviews— список рецензий.
У каждой книги есть уникальный id.
У каждой рецензии есть поле bookId, которое указывает, к какой книге относится рецензия.
Нужно вернуть новый массив книг, где к каждой книге добавлено поле reviews.
В это поле нужно положить все рецензии, относящиеся к этой книге.
Если у книги нет рецензий, поле reviews должно быть пустым массивом.
Задача взята из обсуждения на интервью: нужно было объединить массив книг и массив рецензий по bookId.
Входные данные
books — массив объектов:
[
{ id: 1, title: "War and Peace" }
]reviews — массив объектов:
[
{ id: 101, bookId: 1, text: "Great book" }
]Выходные данные
Новый массив книг:
[
{
id: 1,
title: "War and Peace",
reviews: [
{ id: 101, bookId: 1, text: "Great book" }
]
}
]Ограничения
0 <= books.length <= 10^40 <= reviews.length <= 10^4idкниги уникаленbookIdв рецензии может ссылаться на существующую книгупорядок книг в результате должен совпадать с исходным массивом
booksпорядок рецензий внутри каждой книги должен совпадать с исходным массивом
reviews
Пример
Вход:
books = [
{ id: 1, title: "War and Peace" },
{ id: 2, title: "1984" }
]
reviews = [
{ id: 101, bookId: 1, text: "Excellent" },
{ id: 102, bookId: 1, text: "Long but good" }
]Выход:
[
{
id: 1,
title: "War and Peace",
reviews: [
{ id: 101, bookId: 1, text: "Excellent" },
{ id: 102, bookId: 1, text: "Long but good" }
]
},
{
id: 2,
title: "1984",
reviews: []
}
]