统计字符串种每个元素的出现频率
var str = 'asdfsbdffrdwoieed'
1、方法一:使用for of,首先声明一个空对象,用来存储字符串元素及频率,遍历后将该对象返回
//方法一
function fn(str){
var o ={};
for(let i of str){
if(o[i]){
o[i]++
}else{
o[i] = 1
}
}
return o
}
//{ a: 1, s: 2, d: 4, f: 3, b: 1, r: 1, w: 1, o: 1, i: 1, e: 2 }
2、方法二:首先将字符串转成数组,使用reduce方法,
//方法二
function fn2(str){
return str.split('').reduce((a,b) => ((a[b]?a[b]++:a[b]=1),a),{})
}
//{ a: 1, s: 2, d: 4, f: 3, b: 1, r: 1, w: 1, o: 1, i: 1, e: 2 }