@OliverCts

Как написать функцию трансформации таких данных?

Дано:
Массив №1:
const arr1 = ["2018-11-05", "2018-11-06", "2018-11-07", "2018-11-08", "2018-11-09", "2018-11-10", "2018-11-11"]

Массив №2:
const arr2 = [{count: "1", date: "2018-11-07"}, {count: "5", date: "2018-11-08"}]


Как получить новый массив, в котором элементы первого массива будут заменены на значения count второго, где даты совпадают, иначе на null?

В итоге должно получиться
const arr3 = [null, null, 1 , 5, null, null, null ]?

Желательно на лодаше.
  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const arr3 = arr1.map(n => (arr2.find(m => m.date === n) || { count: null }).count);

или

const obj = arr2.reduce((acc, n) => (acc[n.date] = n.count, acc), {});
const arr3 = arr1.map(n => obj[n] || null);

или

const arr3 = arr1.map(function(n) {
  return this.get(n) || null;
}, new Map(arr2.map(n => [ n.date, n.count ])));
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
17 мая 2024, в 11:52
2500 руб./за проект
17 мая 2024, в 11:43
5000 руб./за проект
17 мая 2024, в 11:41
15000 руб./за проект