#javascript #arrays #global #local
#javascript #массивы #глобальный #Местные новости
Вопрос:
Я очень новичок в vanilla JS, и в настоящее время я работаю над назначением, которое позволяет нам свободно создавать любой веб-сайт, который мы хотим, на основе того, что мы разбиваем весь код на функции и что мы не используем глобальные переменные.
Я почти закончил очень простую адресную книгу, которая принимает имя и номер телефона в качестве входных данных, сохраняет значения в массив и возвращает список контактов при нажатии кнопки «просмотреть все контакты». Моя единственная дилемма заключается в том, что массив является глобальной переменной, и я не уверен, как заставить это работать по-другому.
Обновить
Я добавил сюда весь код. Я работаю в скобках.
function init(){
document.getElementById("addButton").addEventListener("click", addContact)
document.getElementById("listButton").addEventListener("click", listContacts)
}
var contactList = [];
function getAttribute(id){
return document.getElementById(id).value;
}
function verifyNumber(number){
var regExp = /^(?([0-9]{3}))?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/;
var phone = number.match(regExp);
if (phone) {
outPut("alert","");
return true;
}else{
outPut("alert","invalid phone number");
return false;
}
}
function outPut(id,message){
var messageBox = document.getElementById(id);
messageBox.innerText = message;
}
function contact(name, number){
this.name = name;
this.number = number;
return ("Name: " this.name "Number: " this.number);
}
function addContact(){
var name = getAttribute("name");
var number = getAttribute("number");
if(verifyNumber(number)){
var newContact = new contact(name,number);
contactList.push(newContact);
alert("Contact Successfuly Added!");
}
}
function listContacts(){
contactList.forEach(element => console.log(element));
contactList.forEach(Object => {var newElement = document.createElement('h1');
newElement.innerHTML = JSON.stringify(Object);
document.body.appendChild(newElement);
});
}```
Комментарии:
1. Добро пожаловать в stackoverflow 🙂 Потенциально вы могли бы использовать какое-то хранилище для управления данными. Примером является Redux. Ответ (как обычно) «это зависит». Было бы лучше, если бы вы опубликовали некоторый код, который вы уже написали (вы используете какой-то фреймворк или просто ванильный JS?), Который мы могли бы увидеть и, возможно, предложить какое-то решение.
Ответ №1:
Может быть, вместо этого использовать объект? например, пары ключ: значение, и не могли бы вы поделиться с нами фрагментом вашего кода, чтобы мы могли помочь вам лучше, спасибо