首先,请不要试图理解我为什么要在localStorage中保存密码,我只是想知道是否可能。
所以,我有一个注册表,如果localStorage是明确的 - 我在localStorage中保存对象。如果一个对象已经在localStorage中,我想获取这个对象,将它们推入数组,然后在这个数组中推送全新的对象。然后在localStorage中设置此数组。
const registrationForm = document.getElementById('registration');
registrationForm.addEventListener('submit', e => {
e.preventDefault();
let regName = document.querySelector(".registration__name").value;
let regPassword = document.querySelector(".registration__password").value;
let regEmail = document.querySelector(".registration__email").value;
let clientObj = {
name : regName,
password: regPassword,
email: regEmail
};
let clientsArr = [];
clientsArr = JSON.parse(localStorage.getItem('Користувачі'));
if(!clientsArr) {
localStorage.setItem('Users', JSON.stringify(clientObj));
} else {
clientsArr.push(clientObj);
localStorage.setItem('Users', JSON.stringify(clientsArr));
}
})
这可能吗?使用此代码,每次我创建新数组,并将其一次又一次地推送到数组中......
答案 0 :(得分:1)
尝试以下
const registrationForm = document.getElementById('registration');
registrationForm.addEventListener('submit', e => {
e.preventDefault();
let regName = document.querySelector(".registration__name").value;
let regPassword = document.querySelector(".registration__password").value;
let regEmail = document.querySelector(".registration__email").value;
let clientObj = {
name : regName,
password: regPassword,
email: regEmail
};
let clientsArr = [];
if(!localStorage.getItem('Users')) {
clientsArr.push(clientObj);
localStorage.setItem('Users', JSON.stringify(clientsArr));
} else {
clientsArr = JSON.parse(localStorage.getItem('Users'));
clientsArr.push(clientObj);
localStorage.setItem('Users', JSON.stringify(clientsArr));
}
})
答案 1 :(得分:0)
您应始终将localStorage设置为数组:
let clientsArr = JSON.parse(localStorage.getItem('users')) || [];
clientsArr.push(clientObj);
localStorage.setItem('users', JSON.stringify(clientsArr));