Ich versuche Objekte in localstorage mit einem Format ähnlich dem folgenden zu setzen:Setzt und Objektwerte in localstorage Array
[{"1":{"property1":false,"property2":false}},{"2":{"property1":false,"property2":false}}]
Wo ich in der Lage wäre, die 1
oder 2
Basis einstellen auf einen dynamischen Wert bekomme ich von einem REST-Aufruf. Was ich bisher habe, ist:
// 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));
}
Ich kann die Daten in localstorage in diesem Format erhalten, aber StorageObject[thisItemsListID]
bekommt immer in die if-Anweisung und erzeugt ein doppeltes Element in localstorage und ich bin nicht sicher, wie dies für den Zugriff mit eine Variable. Ich versuche, die neue ID anzuhängen, wenn sie nicht existiert, also wenn {1:{}
existiert aber aktuelle ID ist 2
Ich muss den neuen Wert schieben.
Ich bin hier in der Nähe und vielleicht muss ich das Format, das ich die Datenkette speichern, neu bewerten, aber ich gehe hier im Kreis und könnte einen Punkt in die richtige Richtung verwenden.
Richtig - ich denke, es war nicht klar aus meiner Post. Ich schaue nur ein Element nach dem anderen an und muss das neue Element anhängen, wenn die ID nicht existiert. Also, wenn ich '{1: {}' bereits habe und die aktuelle ID '{2: {}' ist, muss ich es zu der Zeichenfolge hinzufügen, weshalb ich versuchte, einen neuen Wert zu pushen. – Aaron
Oohn, ich verstehe. Nun, Sie verwenden Listen falsch. Betrachtet man das Objekt '{{" 1 ": {" property1 ": false," property2 ": false}}, {" 2 ": {" property1 ": false," property2 ": false}}]', wenn 'thisItemsListID 'ist' 2'. '! StorageObject [thisItemsListID]' wäre falsch. Weil der '2'-Index des Arrays' StorageObject' 'null' ist. – Filipe
@Aaron Ich habe die Antwort aktualisiert, die bedingte Auswertung des Objektschlüssels innerhalb des Arrays. – Filipe