Js对象(五)如何查找字符串中出现次数最多的字符 2021-11-24

JavaScript013

Js对象(五)如何查找字符串中出现次数最多的字符 2021-11-24,第1张

1. 先找出每个字符出现的次数

    let str = 'abcoadadooadbdsfsdfwewerewrwrqeqgfdgfdgcvgbhooo'

    let obj = {}

    for (let i = 0i <str.lengthi++) {

        //根据字符的名称查找对象中有没有对应的属性

        if (obj[str[i]]) {

            // 有就+1

            obj[str[i]]++

        } else {

            // 没有就等于1

            obj[str[i]] = 1

        }

    }

    console.log(obj) 

返回如下结果:

     2.再遍历字符串  比较大小得出谁出现的次数最多,这里有两种方式

2.1 利用for in 循环 

    // let max = 0

    // let val = ''

    // for (var k in obj) {

    //     // k得到的是属性名 ,obj[k]得到是属性值

    //     if (obj[k] >max) {

    //         max = obj[k]

    //         val = k

    //     }

    // }

    // console.log('最多的字符是' + val)

2.2 利用forEach遍历数组

    let max = {

        name: '',

        count: 0

    }

    Object.keys(obj).forEach(k =>{

        //判断是否有别的字符串大于max

        if (obj[k] >max.count) {

            max.name = k

            max.count = obj[k]

        }

    })

    console.log(max)

你是求数组中某个元素出现的次数么?我写的只是某个元素出现次数。

function times(arr){

var m=0,times=0//m是数组中的元素,times用来统计出现的次数

// for循环遍历arr数组

for(var i=0i<arr.lengthi++){

if(arr[i]==m){

times++//数组中有相同值就加1

}

}

return times

console.log(times)//这是打印出的出现的次数

}

times([0, 1, 2, 0, 1, 2])