Вы можете .map()
каждый объект к варианту текущего объекта, где значение setting
является ключом нового объекта, а значение свойства value
является значением нового объекта. Вы также можете использовать JSON.parse(value)
, чтобы убедиться, что его строковая версия проанализирована с его примитивным значением. Затем вы можете использовать Object.assign()
с синтаксисом распространения для создания объекта из вашего нового массива объектов:
const arr = [
{ setting: 'inscription_max', value: '0' },
{ setting: 'inscription_open', value: 'false' },
{ setting: 'liste_attente_max', value: '0' }
];
const res = Object.assign({}, ...arr.map(({setting, value}) => ({[setting]: JSON.parse(value)})));
console.log(res);
Если вы можете поддерживать Object.fromEntries()
, тот же результат может быть достигнут с немного меньшим количеством кода:
const arr = [
{ setting: 'inscription_max', value: '0' },
{ setting: 'inscription_open', value: 'false' },
{ setting: 'liste_attente_max', value: '0' }
];
const res = Object.fromEntries(arr.map(({setting, value}) => [setting, JSON.parse(value)]));
console.log(res);