统计输入的字符串里面各字符的字数

174 阅读1分钟

(作者笔记自用)

统计输入的字符串里面各字符的字数。例如参数是“aabbccdddsss”,输出结果为a:2 b:2 c:2 d:3 s:3

let str = 'aabbccdddsss';
let arr = [];
let obj = str.split('').reduce((obj, item, item_index) => {
    if (!obj[item]) {
        obj[item] = 0;
        arr.push(item);
    }
    obj[item] += 1;
    return obj;
}, {});
arr.forEach(item => {
    console.log(item + ':' + obj[item]);
});

上面的代码使用了数组的reduce(function(obj, item, item_index), {})方法,function里面的参数依次为初始值obj、当前元素item、当前元素的索引item_index,reduce函数最后一个参数是传入的初始的obj值(可选)。

当然也可以将上面的代码封装为一个函数,参数为一个字符串。