Я создаю систему на JavaScript, где я могу устанавливать и получать переменные из локального хранилища. Моя проблема в том, что когда я устанавливаю переменную, которая является целым числом для локального хранилища, и я получаю ее обратно из локального хранилища, она возвращает строку, а не целое число / число.
Я пробовал typeof в JavaScript и незнать, как преобразовать мою переменную из локального хранилища (строка) в переменную (целое число).
function setVar(name, value) {
// Set variable type
var json = localStorage.getItem("types");
if(json == null) {
json = {};
}else{
json = JSON.parse(json);
}
json[name] = typeof value;
localStorage.setItem("types", JSON.stringify(json));
// Set the variable
localStorage.setItem(name, value);
}
function getVar(name, defaultValue = 0) {
var v = localStorage.getItem(name);
// Set default value if value is not already set
if(v == null) {
setVar(name, defaultValue);
v = defaultValue;
}
// Cast to value type
var type = JSON.parse(localStorage.getItem("types"))[name];
// TODO: Cast v (string from localStorage) to type (output from typeof)
return v;
}
Все работает. Мне просто нужно выяснить, как преобразовать мою переменную в нужный тип. Возможно, я подхожу к этому неправильно, но что-то помогает.