#javascript
#язык JavaScript
Вопрос:
lt;p class="center" gt; name:lt;brgt; lt;input type="text" id="nameinput" requiredgt;lt;brgt; email:lt;brgt;lt;input type="email" id="emailinput" requiredgt;lt;brgt; password:lt;brgt;lt;input type="password" id="passwordinput" requiredgt;lt;brgt; lt;button id="registerbutton" onclick="co`enter code here`ntainsObject()"gt;Registerlt;buttongt; lt;pgt;lt;brgt;lt;p id="feedback"gt;lt;/pgt;lt;brgt; lt;button onclick="clearStorage()"gt;Clear Storagelt;/buttongt; lt;body id="body"gt; lt;scriptgt; var userArray = []; var person = {}; var newemail; var oldemail; var feedback = document.getElementById("feedback"); person.name = document.getElementById("nameinput").value; person.email = document.getElementById("emailinput").value; person.password = document.getElementById("passwordinput").value; JSON.parse(localStorage.getItem(userArray)); function containsObject(newemail, userArray) { newemail = document.getElementById("emailinput").value; oldemail = localStorage.email; if (newemail === oldemail) { feedback.innerHTML = "email exist"; } else { storeName(); } } function storeName(person, userArray) { let newarray = JSON.parse(localStorage.getItem(userArray)); newarray.push(person); userArray = newarray; localStorage.setItem("person", JSON.stringify(userArray)); console.log(userArray); }
Комментарии:
1. Так что же делать, если ваш элемент локального хранилища еще не существует? Тогда это будет не массив , но
null
, и методnull.push
не существует, отсюда и ошибка. В этом случае вы должны проверить это и инициализировать его пустым массивом.
Ответ №1:
Привет, Мохаммед, при использовании локального хранилища вы всегда должны сначала инициализировать значение, прежде чем изменять его. Вот пример : Инициализация :
localStorage.setItem('user1', 'Mohammed');
Затем вы можете запросить локальное хранилище, чтобы получить значение :
localStorage.getItem('user1')
Или вы можете перезаписать его значение :
localStorage.setItem('user1','Jip')
Важно знать, что и ключ, и назначенное ему значение должны быть строками. Поэтому, когда вы хотите сохранить и инициализировать массив пользователей, массив должен храниться в виде строки. Чтобы повторить процесс для вашего варианта использования : Инициализация :
localStorage.setItem('users',"[]")
Чтение :
localStorage.getItem('users')
Изменение его стоимости :
let users = JSON.parse(localStorage.getItem('users')) users.push('Jip') users = JSON.stringify(users) localStorage.setItem('users',users)
Я надеюсь, что это то, что вам было нужно.