Помогите преобразовать массив в объект массивов с ключом каждого из них
У меня есть массив:
["Августина Екатерина", "Августовский Борис", "Богатова Августина"]
, мне нужно его отсортировать в объект такого вида:
{
А: ["Августина Екатерина", "Августовский Борис"],
Б: ["Богатова Августина"]
}
Массив динамический, формируется после запроса, суть - сгруппировать по первой букве фамилии чтобы потом списком поиск отображать.
Ответы (1 шт):
Автор решения: yar85
→ Ссылка
const input = ["Августина Екатерина", "Августовский Борис", "Богатова Августина"];
const output = input.reduce((rslt, val) => {
const key = val.slice(0, 1).toUpperCase(), // [0] и charAt(0) менее надежны чем slice, но можно и их использовать
arr = Array.isArray(rslt[key]) ? rslt[key] : (rslt[key] = []); // получаем ссылку на значение целевого свойства (на массив) в объекте, создав такое свойство при необходимости
arr.push(val);
return rslt;
}, {});
console.log(output);