Как собрать из массива объект, разбивая каждый элемент массива на ключ/значение по разделителю «=»?

Есть массив:

const arr = [ 'first=ok', 'second=not', 'third=ok' ];

Надо получить объект:

const obj = {
  'first': 'ok',
  'second': 'not',
  'third': 'ok'
};

Как это сделать?
  • Вопрос задан
  • 107 просмотров
Решения вопроса 2
yarkov
@yarkov Куратор тега JavaScript
Проект "Жизнь после смерти" - lifeafterdeath.ru
Метод массива reduce вам поможет
Ответ написан
0xD34F
@0xD34F Куратор тега JavaScript
Object.fromEntries(new URLSearchParams(arr.join('&')))

или

arr.reduce((acc, n) => (
  n = n.split('='),
  acc[n[0]] = n[1],
  acc
), {})

или

Object.assign(...arr.map(n => n.match(/[^=]+/g)).map(([ k, v ]) => ({ [k]: v })))

или

eval(`({${arr.map(n => `"${n.replace('=', '":"')}"`)}})`)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы