js中关于字符串的面试题

统计字符串中,某个字符出现的次数

// 统计一个字符串中某个字符出现的次数
function sumStr(str, char) {
  let b = str.indexOf(char)
  let num = 0
  while (b !== -1) {
    num++
    b = str.indexOf(char, b + 1)
  }
  return num
}

let str = 'ssskojojojopjpjp'
console.log(sumStr(str, 's'));

统计一个字符串中,出现次数最多的字符,出现了多少次?

// 统计一个字符串中,出现次数最多的字符,出现了多少次
str = str.split('')
let newStr = {}
// 将字符作为 key 出现的次数为 value,存储到 newStr对象中
str.forEach(item => {
  if (newStr[item]) {
    newStr[item]++
  } else {
    newStr[item] = 1
  }
});
let max = 0
let strKey = ''
for (let key in newStr) {
  if (newStr[key] > max) {
    max = newStr[key]
    strKey = key
  }
}

let str = 'ssskojojojopjpjp'
console.log(newStr);
console.log(strKey, max);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值