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

2 つの間違いがあります。

1) を初期化したばかりでnames_Array、要素を追加していません。その空の配列を localStorage に格納しています。

2)testはオブジェクトの配列であるため (オブジェクトをプッシュする場合)、インデックスを介して 1 つの特定のオブジェクトにアクセスするか、配列をループしてメンバーを取得する必要があります。

このコードは動作するはずです:

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 に答える