배열 arr 또는 문자열 str에서 각 요소의 발생 횟수를 찾고, 큰 것에서 작은 것 또는 작은 것에서 큰 것으로 정렬합니다.

실제 개발에서는 기본적으로 객체지향적입니다. 일반적으로 면접관이 질문을 할 때 첫 번째는 논리를 테스트하고 두 번째는 프로그래밍에 대한 이해를 테스트합니다.객체 지향 프로그래밍은 개발 효율성을 향상시키고 개발주기를 단축할 수 있습니다.

, 여기서는 두 가지 간단한 예를 들어보겠습니다. 객체지향적 사고는 매우 중요합니다. . . 매우 중요. . . . 매우 중요

1. 주어진 배열에서 배열의 각 요소가 나타나는 횟수를 찾아 작은 것에서 큰 것, 큰 것에서 작은 것으로 정렬합니다.

 // /* 统计数组中数据出现的次数,并大到小、小到大排序*/ 
        let arr = [1, 4, 2, 1, 3, 2, 1, 4]
        // 2. 定义一个对象
        const obj = {}
        // 1. 遍历
        arr.forEach(item => {
            // 判断出现了谁,次数+1
            if (obj[item]) {
                obj[item] += 1
            } else {
                obj[item] = 1
            }
        })
        console.log(obj);

// 排序不单独写了,把下面字符串的排序写出来,数组的自然就会了

2. 주어진 문자열에서 각 문자의 발생 횟수를 찾아 큰 것에서 작은 것, 작은 것에서 큰 것으로 정렬합니다.


        //统计字符串中每个字符出现的次数,然后排序
        const str = 'lkasjglkjasdlkgjaodgiaposdkafpk'
        const obj = {}
        for(let i = 0; i < str.length; i++){
            if(obj[str[i]]){
                obj[str[i]] += 1
            }else {
                obj[str[i]] = 1
            }
        }
        console.log(obj);

        //排序(下面这个是面向过程)
        //把obj先转换为数组,然后把里面的每个 键值对 进行排序
        const arr = []
        for (let key in obj) {
            let temp = {}
            // temp[key] = obj[key]
            temp.chart = key
            temp.times = obj[key]
            arr.push(temp)
        }
        //console.log(arr);
        arr.sort((a, b) => {
            return b.times - a.times
        })
        //console.log(arr);
        arr.forEach(e => console.log(`字符${e.chart}出现了${e.times}次`))


        //简化1(面向对象)
        const arr = []
        const keys = Object.keys(obj)
        const values = Object.values(obj)
        //console.log(keys);
        //console.log(values);
        keys.forEach((item,index)=>{
            arr.push({chart:item,times:values[index]})
        })
        arr.sort

        //简化2(面向对象)
        const values = Object.values(obj)
        Object.keys(obj).map((item,index)=>{
            return {chart:item,times:values[index]}
        }).sort()


        //简化3(面向对象)
        const arr = Object.keys(obj).map(item=>{
            return {chart:item,times:obj[item]}
        }).sort((a,b)=>a.times - b.times)
        console.log(arr);

누구나 토론을 환영합니다. . .

Guess you like

Origin blog.csdn.net/qq_40739261/article/details/116703979