let text = "As long as I'm learning something, I figure I'm OK - it's a decent day."
const letterFrequency = (text) => {
let uniq = Array.from(new Set([...text.toLowerCase().replace(/\W/g, '')]));
return uniq
.map(el => [el, text.match(new RegExp(el, 'gi')).length])
.sort((a, b) => b[1] - a[1]);
};
Должен вернуть
[["i", 7], ["a", 5], ["e", 5], ["n", 5], ["g", 4], ["s", 4], ["m", 3], ["o", 3], ["t", 3], ["d", 2], ["l", 2], ["r", 2], ["c", 1], ["f", 1], ["h", 1], ["k", 1], ["u", 1], ["y", 1]]
Как мне можно реализовать такую сортировку?
Если числа равны, то сортировать по алфавиту, если нет, то по числу.
let text = "As long as I'm learning something, I figure I'm OK - it's a decent day."
const letterFrequency = (text) => {
let uniq = Array.from(new Set([...text.toLowerCase().replace(/\W/g, '')]));
return uniq
.map(el => [el, text.match(new RegExp(el, 'gi')).length])
.sort((a, b) => {
if (a[1] == b[1]) {
return a[0].charCodeAt(0) - b[0].charCodeAt(0);
}
return b[1] - a[1];
});
};
console.log(letterFrequency(text));
Более быстрый вариант, за счет сокращения числа проходов:
Другой вариант (по факту, он оказался медленнее
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Мне нужно остановить данный setInterval через 3 секундыПодскажите пожалуйста как это реализовать ?
Как реализовать, чтобы данный скрипт срабатывал раз в 6 сек?
Я пытаюсь поправить тесты (Google Tests), которые писал не я, и у меня есть несколько вопросов, на которые я не смог найти ответы