Нужно написать функцию,которая определяет, изограмма ли данный текст (слово) или нет, то есть в нем повторяются буквы или нет.
Например: слово Андрей - изограм, слово Анастасия - нет.
Можно так:
function isIsogram(str) {
const normalized = str.replace(/\s/g, '').toLowerCase();
return normalized.length === new Set(normalized).size;
}
console.log(isIsogram('Андрей'));
console.log(isIsogram('Анастасия'));
const isIsogram = (str) => !!str.toLowerCase().split``.filter((h => v => (h[v] = (h[v] || 0) + 1) === 2)({})).length;
console.log(isIsogram('Анастасия'));
console.log(isIsogram('Андрей'));
Данное решение предполагает только один проход по буквам слова, соответственно работает за линейное время O(n)
const isIsogram = (str) => {
const check = {};
for (const l of str) {
if (check[l]) return true;
check[l] = true;
}
return false;
}
console.log(isIsogram('Анастасия'));
console.log(isIsogram('Андрей'));
Неочевидно, должны ли считаться разными символы, отличающиеся регистром. Если да, то можно так:
const isIsogram = str => new Set(str).size === str.length;
console.log(isIsogram('Анастасия'));
console.log(isIsogram('Андрей'));
Если нет, то можно написать new Set(str.toLowerCase())
.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть js функция модального окна внутри, которого есть такие функции как открыть, закрыть модальное окноТеперь надо при нажатии на <button class="choose">ok</button>...
Написал собственный компонент с поддержкой ReactiveFormsКогда указываю свой компонент в template и использую formControl="form
Делаю калькулятор для сайта багетной мастерскойПри выборе багета (рамы, в которую будет вставлена картина), нужно фото этого багета накладывать...
Добавил цель "JavaScript-событие" после успешной отправки формы: