Использование localStorage / sessionStorage для хранения массивов - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь сохранить массив внутри значения localStorage.Я могу получить доступ только к символам значения, а не к групповому значению.Я пытался написать функцию, чтобы сгруппировать их по запятым, но я не могу понять, как это сделать правильно.

// setting values
localStorage.setItem("foo", [15,"bye"]);

// writes the whole thing.
document.write(localStorage.getItem("foo")); // returns 15,bye

// only writes the first character, instead of one part of the array 
// (in this case it would be 15).
document.write(localStorage.getItem("foo")[0]); // returns 1

Ответы [ 3 ]

0 голосов
/ 01 февраля 2019

localStorage может хранить только строку в своем значении, поэтому она хранит только 15;

Используйте JSON.stringify и сохраните ее в локальном хранилище как localStorage.setItem("foo",JSON.stringify([15,"bye"]));

Если вы хотите получить значение, сделайте как JSON.parse(localStorage.getItem("foo"));

0 голосов
/ 01 февраля 2019

Вы можете разобрать json

let data = JSON.parse(localStorage.getItem("foo"));
console.log(data[0])

Или вы можете разделить на ',' и получить индексный элемент 0th.

localStorage.getItem('foo').split(',')[0]
0 голосов
/ 01 февраля 2019

Я бы использовал JSON.stringify для установки данных и JSON.parse для извлечения сохраненных данных.

Попробуйте это:

localStorage.setItem("foo", JSON.stringify([15,"bye"]));

// writes the whole thing.
localStorage.getItem("foo"); // returns 15,bye

var data = JSON.parse(localStorage.getItem("foo"));
console.log(data[0])
...