にオブジェクトの値を設定し、私は次のような形式でのlocalStorageにオブジェクトを設定しようとしている:取得とのlocalStorage配列
私は1
または
2
ベースを設定することができるだろう
[{"1":{"property1":false,"property2":false}},{"2":{"property1":false,"property2":false}}]
私がREST呼び出しから得ている動的な値に基づいています。私はこのフォーマットを使用してのlocalStorageにデータを取得することができ
// check if session exists and create if not
var StorageObject = JSON.parse(localStorage.getItem("session")) || [];
//see if the current id from the REST call is in storage and push with properties if not
if ( !StorageObject[thisItemsListID]) {
var itemProperties = {};
itemProperties[thisItemsListID] = {};
itemProperties[thisItemsListID]["property1"] = false;
itemProperties[thisItemsListID]["property2"] = false;
StorageObject.push(itemProperties);
localStorage.setItem('session', JSON.stringify(StorageObject));
}
しかしStorageObject[thisItemsListID]
は常にif文に入ったとのlocalStorageで重複アイテムを生成し、私はこれにアクセスするかどうかはわかりません。私はこれまで持っていることです変数。私はそれが存在しない場合、新しいIDを追加しようとしているので{1:{}
が存在しますが、現在のIDは2
です。新しい値をプッシュする必要があります。
私はここに閉じ込めていますが、フォーマットを再評価する必要があります。私はデータ文字列を保存していますが、ここでは円になり、正しい方向にポイントを使用できます。
右 - 私のポストからはっきりしていなかったと思います。一度に1つのアイテムしか見ていないので、IDが存在しない場合は新しいアイテムを追加する必要があります。だから私は既に '{1:{}'を持っていて、現在のIDが '{2:{}'であれば、新しい値をプッシュしようとしていた文字列にそれを追加する必要があります。 – Aaron
オーン、そうです。まあ、あなたは間違った方法でリストを使用しています。 'this {{" 1} "{property1":false、 "property2":false}}、{"2":{"property1":false、 "property2":false}}] '、' thisItemsListID 'は' 2 'です。 '!StorageObject [thisItemsListID]'はfalseになります。配列 'StorageObject'の' 2'インデックスが 'null'であるためです。 – Filipe
@Aaron私は、配列内のオブジェクトキーを評価する条件付きの答えを更新しました。 – Filipe