Сократить написание объявления объекта через массив и .map
В общем, вроде простая задача - уместить эти 2 строчки в одну:
let pairs = {};
Array.from(str.matchAll(regexp)).map(val => pairs[val.index + 1] = val[0]);
Но решение я так найти и не смог. Вкратце, код создаёт объект на основе массива используя .map, но при этом объявляет пустой объект, чего нужно избежать... Буду очень благодарен если кто-нибудь с этим поможет
Ответы (1 шт):
Автор решения: ksa
→ Ссылка
уместить эти 2 строчки в одну
Заменить map на reduce...
let pairs = Array.from(str.matchAll(regexp)).reduce((o, val) => (o[val.index + 1] = val[0], o), {});
Еще вот так сократить можно...
let pairs = [...str.matchAll(regexp)].reduce((o, val) => (o[val.index + 1] = val[0], o), {});