2016-05-19 3 views
0

Я устанавливаю значение localStorage в формате массива байтов, но когда я пытаюсь его получить, он извлекается как String?Каков возвращаемый тип localStorage?

Почему так?

Если да, то как мы можем его преобразовать?

Помощь приветствуется!

+0

Почему отрицательный? Пожалуйста, укажите причину, если нет ответа на вопрос – Anand

+0

Что вы хотите после конвертации? –

+0

'window.localStorage' - это объект. Все значения элементов хранятся в виде строк. Итак, ваш вопрос на самом деле: «Как преобразовать строку в массив?». – evolutionxbox

ответ

2

Вот как он хранится: в String.

Вы можете использовать JSON.parse(yourStoredValue)

+0

Thanks..Let me check :) – Anand

+0

Сохраненный массив 'localStorage.setItem ('array', [1,2,3,4,5,6])' извлеченный с помощью 'localStorage.array' выходит как' 1 , 2,3,4,5,6 ", что недействительно JSON. – evolutionxbox

+0

, если у вас есть var a = JSON.parse ("[1,2,3]"), a будет массивом – Erik

0

Если вы хотите сохранить JSON объект - магазин это

localStorage.setItem(JSON.stringify({'a': [1, 2, 3]}));

И вы можете получить его как

JSON.parse(localStorage.getItem("field_name"));

и если вы хотите хранить чистые коды JavaScript и выполнять е позже просто сохранить его как String, и получить его как

eval(localStorage.getItem("field_name"));

Надеется, что это поможет.

+0

Не использовал бы eval в этой ситуации проблемы с безопасностью? Что делать, если вы заменили localstorage на вредоносный код? – evolutionxbox

+0

Я согласен с вами в том, что использование eval будет вредным, поскольку localStorage косвенно является пользователем. Я просто использовал его для лучшего понимания :), поскольку его вопрос был «тип localStorage return» –