Как получить несколько ключей и значений из localStorage - PullRequest
0 голосов
/ 01 июля 2018

Я храню несколько массивов в локальном хранилище.

firstArray = [];
secArray = [];

var firsteobj = {class: class, subject: subject, school: school, area: area, zipcode: zipcode};  
firstArray.push(firstobj);
localStorage.firstRecord = JSON.stringify(firstArray);

var secobj = {student: student, grade: grade, age: age};     
secArray.push(secobj);
localStorage.secondRecord = JSON.stringify(secArray);

А я извлекаю из хранилища через функцию и загружаю файл.

function DownloadRec() {
  var a = {};
  for (var i = 0; i < localStorage.length; i++) {
    var k = localStorage.key(i);
    var v = localStorage.getItem(k);
    a[k] = v;
    //alert(a[k]);
  }

  let dataUrl = 'data:application/json,' + encodeURIComponent(a[k]);
  let exportFileDefaultName = 'test.json';

  let linkElement = document.createElement('a');
  linkElement.setAttribute('href', dataUrl);
  linkElement.setAttribute('download', exportFileDefaultName);
  linkElement.click();
}

Я мог видеть и ключ (firstRecord, secRocord) и соответствующие ему значения в браузере. Я мог бы получить только первый ключ, который является localstorage.firstRecord .... Я хотел бы получить второй ключ и значения, который также является localstorage.secondRecord.

Не могли бы вы предложить мне.

Ответы [ 3 ]

0 голосов
/ 01 июля 2018

Просто создайте массив объектов следующим образом:

  arr=[
       obj1:'',
       .
       .
       .
       obj2:''
       ]

и сохраните его в браузере, используя localStorage.setItem ('objName'), теперь вы можете получить весь массив. Я думаю, что это лучший подход в вашем случае.

0 голосов
/ 01 июля 2018

Вы можете сохранить несколько значений в локальном хранилище, используя следующие. Также вы можете хранить данные в виде объектов JSON, как показано:

//Store Values:
localStorage.setItem('someValue','hello');
let user = {name: 'SomeName', email: 'someemail@gmail.com'};
localStorage.setItem('jsonValue',JSON.stringify(user));

//Retrieve the values from localstorage
let temp = localStorage.getItem('someValue'); //temp is hello
let tempJSONString = localStorage.getItem('jsonValue'); 
let tempJSON = JSON.parse(tempJSONString );
//tempJSON.name is SomeName
0 голосов
/ 01 июля 2018

Правильный способ установить / получить localStorage выглядит так:

const myValue = [{ thing: 'myValue' }]
const mySerializedValue = JSON.stringify(myValue)

localStorage.setItem('myKey', mySerializedValue)
localStorage.getItem('myKey')

Также я заметил, что «класс» используется в качестве имени переменной. Возможно, вы захотите переименовать, потому что «класс» является ключевым словом во многих языках программирования, включая es6 javascript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...