Как получить массив уникальных символов и их количество из заданной строки?
Строку 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);