谈谈 面试 统计单词出现次数(key => value) 那点事

今天看到某团一个面试题
统计单词出现次数(key => value)
就唠唠 这种业务上的一点东西

设置了一个字符串来测试

  • 原题
    var str = 'adaddvadsfgtrsytreewythjnmnbv'
    因为要用key value 键值对来表示 肯定第一想到的是 对象
    var str = 'adaddvadsfgtrsytreewythjnmnbv'
    var obj = {}
    for (var i= 0; i< str.length; i++) {
      obj[str[i]] = 1 || (obj[str[i]] + 1)  
    }
    console.log(obj)  //{a: 2, b: 2, c: 2}复制代码
    上面其实很简单的 遍历每一项 1 或者 每一项 每一项的数量+1
  • 扩展1
    现在找下字符串中第一个重复的字符
    var str = 'adaddvadsfgtrsytreewythjnmnbv'
 var str = 'adaddvadsfgtrsytreewythjnmnbv'
 var obj = {}
 for (var i= 0; i< str.length; i++) {
    obj[str[i]] = 1 || (obj[str[i]] + 1)  
    if(obj[str[i]] == 2) {
        console.log(str[i]) //第一个重复的是a
        break;   //找到就退出
    }
 }
 console.log(obj)  //{a: 2, b: 2, c: 2}复制代码
  • 扩展2
    现在找下字符串中出现次数最多的字符
    var str = 'adaddvadsfgtrsytreewythjnmnbv'
var str = 'adaddvadsfgtrsytreewythjnmnbv'
 var obj = {}
 for (var i= 0; i< str.length; i++) {
    obj[str[i]] = 1 || (obj[str[i]] + 1)  
 }
 console.log(obj)  //{a: 2, b: 2, c: 2}  这里找到 所有
 var temp_val = 1 //temp_val 标记一个初始数量
 var temp_key = str[0] //temp_key 标记初始一个字符
 for (var key in obj) {
     if (obj[key] > temp) {
        temp_key = key
        temp_val = obj[key]
     }
 }
 //这里 temp_key   temp_val  显示了 那个字符 最多复制代码

基础还有很多 希望继续努力

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值