Показать сообщение отдельно
  #7 (permalink)  
Старый 19.06.2021, 11:04
Аспирант
Отправить личное сообщение для prototip Посмотреть профиль Найти все сообщения от prototip
 
Регистрация: 15.05.2021
Сообщений: 35

рони,
прошу прощения это я недопонял, результат должен быть: [ [ 'aaa', 2 ], [ 'bb', 2 ] ]
let input: string = "aaa bb bb rrrrr aaa r t";

function countWords(str: string, n: number){
    let splitStr = str.split(' ');
    let res = new Map();
    for(let i = 0; i < splitStr.length; i++){
        if(!res.has(splitStr[i])){
            res.set(splitStr[i], 1)
        }else{
            let count = res.get(splitStr[i]);
            res.set(splitStr[i], count + 1)
        }
    }
let arr = Array.from(res.entries());
     return arr;

}

console.log(countWords(input, 2)); // [ [ 'aaa', 2 ], [ 'bb', 2 ], [ 'rrrrr', 1 ], [ 'r', 1 ], [ 't', 1 ] ]


решил сделать немного по другому, потому что не понял некоторые моменты в вашем коде. как по итогу отсортировать, чтобы результат в этом коде был: [ [ 'aaa', 2 ], [ 'bb', 2 ] ] и при этом если n 1 то оно выведет только одну строку, если n 3, то выведет 3 самых пополярных ?

Последний раз редактировалось prototip, 19.06.2021 в 11:15.
Ответить с цитированием