Как получить массив уникальных символов и их количество из заданной строки?

Строку var string ="Some string" я преобразовал в массив отдельных символов путем

var result = string.split(''); // ["s", "o", "m", "e", "", "s", "t", "r", "i", "n", "g"]

Если применить let uniqueNums = [ ...new Set (result)] то получится массив только из уникальных символов, а мне нужна функция которая еще добавит в объект кол-во каждого символа в этой строке.

{symbol: "S", amount: 2}
{symbol: "o", amount: 1}

и т.д.


Ответы (2 шт):

Автор решения: Air

//{symbol: "o", amount: 1}

var string = "Some string"
var total= [];
var result = string.split('');

result.forEach((s, i)=>{
total.push({sumbol:s, amount: i+1})
})

console.log(total);

→ Ссылка
Автор решения: Алексей Шиманский

let arr = ["h", "e", "l", "l", "o", " ", "w", "o", "r", "l", "d"];

let symbolsOccurenceMap = arr.reduce((acc, symbol) => {
    acc[symbol] = acc[symbol] ? acc[symbol] + 1 : 1; 
    return acc
}, {});

let resultMap = [];
for (let [symbol, count] of Object.entries(symbolsOccurenceMap)) {
    resultMap.push({ symbol, count });
}

// либо так
//resultMap = Object.entries(symbolsOccurenceMap).map(([symbol, count]) => {
//    return { symbol, count };
//});

console.log(resultMap);

→ Ссылка