Задачи по JavaScript с решениями: вывести различные символы двух строк
Программирование на языке JavaScript.
Задача: Вывести различные символы двух строк (т.е. такие, какие есть только в одном из них).
Решение:
<!DOCTYPE> <html> <head> <title>Задачи по JavaScript</title> </head> <body> <script> function f_click() { var first = document.getElementById("1").value; var second= document.getElementById("2").value; var b_lines = document.getElementById('lines'); var S = first.split(''); var lj = S.length; for (j = 0; j < lj; j++) if (second.indexOf(S[j]) != -1) {first = first.split (S[j]).join(''); second = second.split(S[j]).join('')} b_lines.innerHTML=((first + second).split('')); } </script> Введите 1 строку: <br /> <input id='1' name="login" type="text" size="25" maxlength="30" value="" /> <br /> Введите 2 строку: <br /> <input id='2' name="pd" type="text" size="25" maxlength="30" value="" /> <br /> <input type="button" name="enter" value="Расчет" onclick="f_click()" /> <div style="margin: 0 auto;width: 200px; font-size:25px" id="lines"></div> </body> </html>
Копируем выше описанный код в какой-нибудь текстовый редактор (лучше в Notepad++) и сохраняем файл в формате HTML.
Используемые функции и методы в коде:
document.getElementById(id) - возвращает элемент по заданному id для дальнейшей работы с ним.
.value - возвращает значение "value" элемента.
.split(x) - возвращает новый массив, а x строка или регулярное выражение, по которому разбивается строка
.length - длина массива, в данном случае длина строки.
.indexOf(x) - поиск x в строке слева направо. Если ничего не найдено, возвращает -1.
.join(x) - присоединяет все элементы массива в строку. x - разделитель между элементами, которые будет в строке.
.innerHTML - получает, изменяет содержание элемента.
Идея:
Вводим наши две строки в поля и нажимаем кнопку "Расчет", после чего срабатывает функция f_click(). В переменной first храним нашу первую строку, а в second - вторую. При помощи метода .split() из символов первой строки создаем новый массив S и в переменную lj записываем его длину. Далее в цикле for начинаем искать символы первой строки во второй при помощи .indexOf(). Если совпадение есть, то из первой и второй строки при помощи .split() и .join() убираем повторные символы. Ну и в конце просто выводим массивом наши различные символы двух строк.