Вызов функции массива
Есть у меня функция, которая выводит "Привет, + имена из массива names, но только те, что заданы.) Как сделать, чтобы я наполнял данный массив из клавиатуры, и вывод осуществлялся всех имен, что были введены? И чтобы кол-во имен в массиве names зависело от того, сколько я решил ввести. Я могу сразу через var задать все имена в массив, но тогда перед каждым вызовом функции мне нужно менять массив.
var names = ['Вася', 'Петя', 'Коля'];
function Hi() {
alert("Hello," + names)
}
Hi()
Ответы (2 шт):
Автор решения: MoloF
→ Ссылка
// Поле - ввод, с помощью querySelector() получаем первый элемент DOM.
const input = document.querySelector('input');
// Кнопка
const button = document.querySelector('button');
// Блок, в который будем выводить имена
const output = document.querySelector('.output');
// Пустой массив с именами
const names = [];
// Функция pushName()
const pushName = () => {
// Проверяем не было ли пустое значение у поля
if (!input.value) return;
// Добавляем в массив значение поля
names.push(input.value);
// Выводим строку в блок output
output.innerHTML = `Hello, ${names.join(', ')}.`;
// Обнуляем значение переменной
input.value = '';
}
// Вешаем слушатель на кнопку, в качестве события у нас будет клик, в качестве callback функции передадим нашу функцию pushName.
button.addEventListener('click', pushName);
<input type="text" placeholder="Имя">
<button>Добавить</button>
<br>
<p class="output">Hello!</p>
Автор решения: MoloF
→ Ссылка
Используемые методы:
- window.prompt()
- window.confirm()
- window.alert()
- тернарный оператор
(условие ? выражение1 : выражение2) - array.push()
- array.join()
// Объявляем массив с именами.
const names = [];
function enterName() {
// Отображаем диалоговое окно для ввода имени.
const name = prompt('Введите имя: ');
// Уточняем у пользователя нужно ли продолжить ввод имен.
const status = confirm("Продолжить ввод?");
// Если имя не содержит пустую строк, добавляем в массив методом push()
if (name) names.push(name);
// Если мы продолжили ввод, то по тернарному оператору обращаемся опять к этой же функции, в ином случае переходим в функцию printNames()
status ? enterName() : printNames();
}
function printNames() {
// Отображаем диалоговое окно, в котором мы конкатенируем строки и с помощью метода join() объединяем значения в массиве через запятую и пробел, в конце добавляем точку.
alert('Hello, ' + names.join(', ') + '.');
}
// Вызываем функцию enterName();
enterName();