我从localstorage获取一组对象:
saved_selection = window.localStorage.getItem('match_selection');
console.log('saved selection obj is ');
console.log(saved_selection);
输出结果为:
{"236":"Forward_2","243":"Forward_1"}
现在我想循环并获取密钥和值。所以我这样做:
for(var index in saved_selection) {
console.log(index + " -> " + saved_selection[index]);
}
但我明白了:
0 -> {
1 -> "
2 -> 2
3 -> 3
等,而不是:
236 -> Forward_2
243 -> Forward_1
如何实现所需的输出?
答案 0 :(得分:2)
您想要解析localStorage返回的字符串:
saved_selection = JSON.parse( window.localStorage.getItem('match_selection') );
答案 1 :(得分:1)
这意味着{"236":"Forward_2","243":"Forward_1"}
是字符串的实例,而不是对象。
为了
var v1 = '{"236":"Forward_2","243":"Forward_1"}';
这不起作用,但是
var v2 = {"236":"Forward_2","243":"Forward_1"};
您应该使用 JSON.parse 方法将String
转换为Object
。
saved_selection = JSON.parse(saved_selection);
for(var index in saved_selection) {
console.log(index + " -> " + saved_selection[index]);
}
答案 2 :(得分:1)
您,我的朋友正在尝试获取完整字符串化对象的索引。它不起作用。首先,您必须使用JSON.parse()
对其进行解析并将其分解为单个组件。
看下面:
<强> JS:强>
var saved_selection = JSON.parse('{"236":"Forward_2","243":"Forward_1"}') ;
var saved_selection1 = '{"236":"Forward_2","243":"Forward_1"}' ;
for(var index in saved_selection) {
console.log(index + " -> " + saved_selection[index]);
}
for(var index in saved_selection1) {
console.log(index + " -> " + saved_selection1[index]);
}
第一个for循环返回所需的O / P,但第二个没有。
在这里找到工作小提琴:http://jsfiddle.net/eMVNk/2/