Теперь следует самостоятельно решить практическую задачу. Она будет сложнее, чем предыдущие примеры, но тем и интереснее.
Помимо того, что было озвучено здесь, в этом задании также нужно будет вспомнить тему Массивов.
У вас есть массив: var students = ["Илья","Greg", "Алина"]; Вам надо пройтись по каждому элементу этого массива и выяснить в каком элементе массива есть буквы, которые не попадают в диапазон русских букв.
Подсказка. При решении нужно использовать цикл внутри цикла. В первом цикле вы перебираете элементы массива, а во внутреннем цикле уже каждый символ текущего элемента массива. Для внутреннего цикла можете назвать счетчик var j = 0;
Давайте немного изменим массив: в имени «Илья» букву «я» заменим на «q».
<script type="text/javascript">
var students = ["Ильq","Greg", "Алина"];
var i = 0;
while (i < students.length) /* Создаем цикл, который перебирает элементы массива, т.е. имена студентов */
{
var name = students[i];
document.write(name + "<p>"); /* Выводим на экран текущее имя студента*/
var j = 0;
while (j < name.length) /* Создаем внутренний цикл, который перебирает символы текущего имени*/
{
/* Далее в условии проверяем текущий символ имени на предмет его попадания в диапазон кодов для букв русского алфавита */
if (name.charCodeAt(j) < 1040 || name.charCodeAt(j) > 1103)
{
document.write("В имени " + name + " введен недопустимый символ " + name.charAt(j) + "<p>");
}
j++;
}
i++;
}
</script>
Далее приведено еще одно решение этого задания. Оно реализовано при помощи цикла for.
Здесь за счет цикла for (и не только) оптимизирован код.
<script type="text/javascript">
var students = ["Ильq","Greg", "Алина"];
for(i = 0; i < students.length; i++) /* Цикл перебирает элементы массива */
{
document.write(students[i] + "<p>") /* Выводим на экран текущее имя студента*/
for(j = 0; j < students[i].length; j++) /* Цикл перебирает символы текущего имени */
{
if(students[i].charCodeAt(j) < 1040 || students[i].charCodeAt(j) > 1103)
document.write(students[i].charAt(j) + " - это неверный символ <p>")
}
}
</script>