Ich möchte vom Server zurückgegebene Datenobjekte hinzufügen und im lokalen Speicher speichern.
data.Total
ist eine Reihe von Ganzzahlen, die bei erfolgreichen Anforderungen vom Server kommen. Ich muss sie irgendwie hinzufügen, bevor ich sie im lokalen Speicher speichern kann
let score = data.Total+localStorage.getItem("RelationScore");
let removeNull = score.replace('null', '');
localStorage.setItem("RelationScore", removeNull );
Beispielausgabe: 1234
Ich möchte diese hinzufügen und in einer einzelnen Variablen speichern, daher sollte das auf dem Beispiel basierende Ergebnis 10
sein.
3 Antworten
Alle Elemente werden als Zeichenfolge in localStorage
gespeichert. Sie müssen sie also zuerst analysieren:
let score = localStorage.getItem("RelationScore");
score = score === null ? 0 : parseInt(score);
localStorage.setItem("RelationScore", data.Total + score);
Ich gehe davon aus, dass data.Total
eine ganze Zahl ist, wie Sie gesagt haben. Wenn dies nicht der Fall ist, müssen Sie es auch analysieren.
Wenn Sie die Gesamtsumme nur aktualisieren möchten, wenn der Artikel nicht Null ist:
let score = localStorage.getItem("RelationScore");
if(score !== null) {
score = parseInt(score);
if(score !==0)
localStorage.setItem("RelationScore", data.Total + score);
}
Selbst wenn Sie eine Ganzzahl in localStorage einfügen, wird diese als Zeichenfolge gespeichert.
Wenn Sie einer Zeichenfolge in JavaScript eine Nummer hinzufügen, hängen Sie die Nummer nur an die Zeichenfolge "10" + 1234 === "101234";
an. Sie müssen den String also auf eine Zahl analysieren:
let score = 0;
if (localStorage.getItem("RelationScore")) { // if the Item exists
score += parseInt(localStorage.getItem("RelationScore")); // make a number out of it and add it to the score
}
score += parseInt(data.Total); // add data.Total, even if the Item hasn't already been set
localStorage.setItem("RelationScore", score); // finally save the score to localStorage
Aufgrund Ihrer Kommentare suchen Sie wahrscheinlich nach diesem Code:
let stored = (localStorage.getItem("RelationScore") === null ? 0 : parseInt(localStorage.getItem("RelationScore")));
let score = parseInt(data.Total) + stored;
localStorage.setItem("RelationScore", score);