Задать вопрос
@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 ]?

Желательно на лодаше.
  • Вопрос задан
  • 99 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const arr3 = arr1.map(n => (n = arr2.find(m => m.date === n)) ? +n.count : null);

или

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

или

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

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

Похожие вопросы