在localStorage中推送对象

时间:2018-01-28 15:00:36

标签: javascript arrays local-storage javascript-objects saving-data

首先,请不要试图理解我为什么要在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));
      }
   })

这可能吗?使用此代码,每次我创建新数组,并将其一次又一次地推送到数组中......

2 个答案:

答案 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));
相关问题