Javascript将localStorage getItem字符串转换为数组
我有一个图像库,我正在使用以下方式将图像名称存储到localstorage中:Javascript将localStorage getItem字符串转换为数组,javascript,arrays,Javascript,Arrays,我有一个图像库,我正在使用以下方式将图像名称存储到localstorage中: var user_selected_images = JSON.stringify(output); localStorage.setItem('selectedFiles', user_selected_images); 单击库中的图像时,我想检查阵列中是否存在该图像 var selFiles = localStorage.getItem('selectedFiles'); var selFiles = JSON
var user_selected_images = JSON.stringify(output);
localStorage.setItem('selectedFiles', user_selected_images);
单击库中的图像时,我想检查阵列中是否存在该图像
var selFiles = localStorage.getItem('selectedFiles');
var selFiles = JSON.parse(selFiles);
当我尝试评估变量的类型时
console.log(typeof selFiles)
我得到的输出是string
。当前我的getItem输出如下所示:
["STAR_SPORTS-00001.jpg","STAR_SPORTS-00002.jpg"]
var output = '["STAR_SPORTS-00001.jpg","STAR_SPORTS-00002.jpg"]';
我尝试使用
jQuery.makeArray(selFiles)
和在SO中可以找到的各种选项,但我的getItem仍然是字符串而不是数组 这是不可能的,它必须返回对象
而不是字符串
。请参阅下面的测试。还可以使用Array.isArray()
对其进行测试:
var输出=[“STAR\u SPORTS-00001.jpg”,“STAR\u SPORTS-00002.jpg”]
var user_selected_images=JSON.stringify(输出);
var selFiles=用户选择的图像;
var selFiles=JSON.parse(selFiles);
控制台日志(自文件类型);
console.log(Array.isArray(selFiles))代码>这是不可能的,它必须返回对象
而不是字符串
。请参阅下面的测试。还可以使用Array.isArray()
对其进行测试:
var输出=[“STAR\u SPORTS-00001.jpg”,“STAR\u SPORTS-00002.jpg”]
var user_selected_images=JSON.stringify(输出);
var selFiles=用户选择的图像;
var selFiles=JSON.parse(selFiles);
控制台日志(自文件类型);
console.log(Array.isArray(selFiles))
您确定您的输出
变量不是字符串吗?如果我像这样初始化输出
:
var output = ["STAR_SPORTS-00001.jpg","STAR_SPORTS-00002.jpg"];
console.log(selFiles的类型)
按预期返回object
然后我初始化输出
,如下所示:
["STAR_SPORTS-00001.jpg","STAR_SPORTS-00002.jpg"]
var output = '["STAR_SPORTS-00001.jpg","STAR_SPORTS-00002.jpg"]';
console.log(typeof selFiles)
返回一个字符串,就像您遇到的问题一样。您确定您的输出
变量不是字符串吗?如果我像这样初始化输出
:
var output = ["STAR_SPORTS-00001.jpg","STAR_SPORTS-00002.jpg"];
console.log(selFiles的类型)
按预期返回object
然后我初始化输出
,如下所示:
["STAR_SPORTS-00001.jpg","STAR_SPORTS-00002.jpg"]
var output = '["STAR_SPORTS-00001.jpg","STAR_SPORTS-00002.jpg"]';
console.log(typeof selFiles)
返回一个与您遇到的问题类似的字符串。听起来不太可能。如果我执行var输出=[“STAR_SPORTS-00001.jpg”,“STAR_SPORTS-00002.jpg”],我就会得到一个数组;用户所选图片=JSON.stringify(输出);日志(用户选择的图像);var selFiles=JSON.parse(用户选择的图片);log(typeof selFiles,selFiles)
你能不能把一些东西记录下来,也许有一个错误只有在输出
已经是一个严格定义的JSON时才会发生。你能不能试着不把它字符串化并按原样存储。请用你的确切答案更新这个问题。我想output
已经是一个JSON字符串了。。。所以这一行是不必要的JSON.stringify(输出)代码>。。。。。。。。。。。。。尝试localStorage.setItem('selectedFiles',output)
@PranavCBalan最好先做console.log(输出类型)
,听起来不太可能。如果我执行var输出=[“STAR_SPORTS-00001.jpg”,“STAR_SPORTS-00002.jpg”],我就会得到一个数组;用户所选图片=JSON.stringify(输出);日志(用户选择的图像);var selFiles=JSON.parse(用户选择的图片);log(typeof selFiles,selFiles)
你能不能把一些东西记录下来,也许有一个错误只有在输出
已经是一个严格定义的JSON时才会发生。你能不能试着不把它字符串化并按原样存储。请用你的确切答案更新这个问题。我想output
已经是一个JSON字符串了。。。所以这一行是不必要的JSON.stringify(输出)代码>。。。。。。。。。。。。。尝试localStorage.setItem('selectedFiles',output)
@PranavCBalan最好先做console.log(输出类型)