0

我看过很多例子,我似乎无法弄清楚我在这里做错了什么:

 var names_Array = [];
 var names_List = new WinJS.Binding.List(names_Array);
 names_List.push({ name: "Joe Dowling", image: "image/Joe Dowling.png", ClientID: "1234" });

window.localStorage.setItem('names_Array', JSON.stringify(names_Array));

var test = JSON.parse(window.localStorage.getItem('names_Array'));
console.log(test.name);

在控制台中未定义,为什么会发生?

4

2 回答 2

1

你有两个错误:

1)您刚刚初始化names_Array并没有向其中添加任何元素。您将该空数组存储在 localStorage 中。

2)由于test是一个对象数组(如果您将对象推入其中),您必须通过索引访问一个特定对象,或者遍历数组以获取成员。

此代码应该可以工作:

var names_Array = [];
var names_List = new WinJS.Binding.List(names_Array);
names_List.push({ name: "Joe Dowling", image: "image/Joe Dowling.png", ClientID: "1234" });

window.localStorage.setItem('names_Array', JSON.stringify(names_List));

var test = JSON.parse(window.localStorage.getItem('names_Array'));

for( i in test ) console.log(test[i].name);
于 2013-06-13T08:50:36.340 回答
0
window.localStorage.setItem(
    'names_Array',
    JSON.stringify(['John Doe', 'Jane Doe'])
);
console.log(JSON.parse(window.localStorage.getItem('names_Array')));

印刷

["John Doe", "Jane Doe"]

也许test.name是碍事?

于 2013-06-13T08:36:34.023 回答