字符出现次数在多次面试中都频频出现,数组出现次数和字符串基本类似,下面就字符串进行解析
// 定义一个待统计的字符串
const str = 'aakkcnn'
1
2
2
# 方法1
// 方法1
const count1 = [...str].reduce((prev, cur) =>
(prev[cur]++ || (prev[cur] = 1), prev), {})
console.log(count1) // { a: 2, k: 2, c: 1, n: 2 }
1
2
3
4
2
3
4
# 方法2
// 方法2
const count2 = ((str) => {
let obj = {}
for(let i of str){
Object.keys(obj).indexOf(i) == -1 ? obj[i] = 1 : obj[i] += 1
}
return obj
})(str)
console.log(count2) // { a: 2, k: 2, c: 1, n: 2 }
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 方法3
// 方法3
const count3 = ((str) => {
let result = {}
for(let i of str){
result[i] ? result[i] += 1 : result[i] = 1
}
return result
})(str)
console.log(count3); // { a: 2, k: 2, c: 1, n: 2 }
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
以上便是基本的求字符串中每个字符出现次数的方法,其他的基本类似,如有错误欢迎纠正,谢谢

支持微信、支付宝、QQ
赏
打赏请随意
您的支持,我的动力