const arrayToObject = (array) => {
array.reduce(...
Надо добавить return
или убрать фигурные скобки.
{id: '1', content: 'Some stuff'},
obj[item._id] = item
Почему в первом случае у id подчёркивания нет, а во втором есть? - ведь это один и тот же id, вроде как.
как лучше решить задачу преобразования массива в такой объект?
Давайте решим задачу в более общем виде, пусть ключами будут не обязательно id, а что угодно - добавим второй параметр, функцию, которая принимает элемент массива и возвращает ключ, под которым значение будет записано в объект; само значение аналогично - не обязательно элемент массива, тоже решаем этот вопрос через дополнительный параметр:
const arrToObj = (arr, key, val = n => n) =>
arr.reduce((acc, n) => (acc[key(n)] = val(n), acc), {});
const obj1 = arrToObj(array, n => n.id);
const obj2 = arrToObj(array, n => n.id, n => n.content);