Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с задачей на js,не понимаю почему не правильный код

Георгий Бурмистров Ученик (234), на голосовании 6 месяцев назад
Изограмма – это слово, в котором нет повторяющихся букв, последовательных или непоследовательных. Реализуйте функцию, которая определяет, является ли строка, содержащая только буквы, изограммой. Предположим, что пустая строка является изограммой. Игнорировать регистр букв.
мое решение:
 function isIsogram(str){ 
let flag = true //Допускаю что слово изначально изограмма
for (let i =0;i if (str.includes(str[i])===true ) { //Проверяю каждый символ в строке на совпадение ,если символ совпал, то меня флаг на false и сразу заканчиваю цикл
flag = false
break
}
}
console.log(flag) //тут получается false хотя должно быть true
return flag
}
isIsogram('Dermatoglyphics')// здесь нет повторяющихся символов
Голосование за лучший ответ
Dante 268 Мастер (1859) 7 месяцев назад
Проблема в том, что метод includes() проверяет наличие символа в строке, но он не игнорирует регистр. Можно использовать метод toLowerCase() для приведения всех символов в строке к нижнему регистру перед выполнением проверки.

Попробуй так:
 function isIsogram(str){  
let flag = true; // Предположим, что слово изначально изограмма
str = str.toLowerCase(); // Приводим все символы к нижнему регистру
for (let i = 0; i < str.length; i++) { // Делаем цикл
if (str.indexOf(str[i]) !== i) { // Проверяем, есть ли текущий символ в строке до текущей позиции
flag = false;
break;
}
}
console.log(flag);
return flag;
}

isIsogram('Dermatoglyphics'); // Вернет true, так как нет повторяющихся символов
Оракул (50099) 6 месяцев назад
 привет  
ты разбираешься
в скриптах js❓

умеешь и понимаешь
в видео плеере html5
с плейлистом

сможешь помочь❓

при нажатии стрелки вперёд
для следующего видео

в плейлисте нет никаких подвижек

а если нажать в самом плейлисте
на выбранное видео

то
работает

вот
есть архив того плеера
он в zip

скачать
распаковать
и открыть
index.html
в браузере

вот ссылка
https://cloud.mail.ru/public/BvFt/9UXDGmwnk
Лайт Ягами Искусственный Интеллект (309709) 7 месяцев назад
Потому что проверять строку на наличие символа, взятого из этой же самой строки - это глупость, символ этот в любом будет присутствовать и условие всегда будет выполняться.
Георгий БурмистровУченик (234) 7 месяцев назад
теперь понял,спасибо
Павел Просветленный (25617) 7 месяцев назад
Твоя программа работает так:
  1. Проверяемое слово 'abc'
  2. Слово 'abc' содержит букву 'a'?
  3. Да!
  4. Слово является изограммой.
  5. Завершение программы.
Цикл всегда завершается при первой итерации, так как ты методу includes скармливаешь свою же строку. Звучит логично?
ПавелПросветленный (25617) 7 месяцев назад
  1. *не является
Георгий БурмистровУченик (234) 7 месяцев назад
спасибо
Похожие вопросы