Also dachte ich, ich könnte localStorage einfach wie ein normales Objekt durchlaufen, da es eine Länge hat. Wie kann ich das durchlaufen?
localStorage.setItem(1,'Lorem');
localStorage.setItem(2,'Ipsum');
localStorage.setItem(3,'Dolor');
Wenn ich ein mache localStorage.length
, kehrt es zurück, 3
was korrekt ist. Ich würde also annehmen, dass eine for...in
Schleife funktionieren würde.
Ich dachte so etwas wie:
for (x in localStorage){
console.log(localStorage[x]);
}
Aber ohne Erfolg. Irgendwelche Ideen?
Die andere Idee, die ich hatte, war so etwas wie
localStorage.setItem(1,'Lorem|Ipsum|Dolor')
var split_list = localStorage.getItem(1).split('|');
In dem for...in
funktioniert das.
javascript
html
loops
object
local-storage
Oscar Patensohn
quelle
quelle
Antworten:
Sie können die
key
Methode verwenden.localStorage.key(index)
Gibt denindex
th-Schlüssel zurück (die Reihenfolge ist implementierungsdefiniert, aber konstant, bis Sie Schlüssel hinzufügen oder entfernen).Wenn die Reihenfolge wichtig ist, können Sie ein JSON-serialisiertes Array speichern:
Der Entwurf der Spezifikation besagt, dass jedes Objekt, das strukturierten Klon unterstützt , ein Wert sein kann. Dies scheint jedoch noch nicht unterstützt zu werden.
BEARBEITEN: Um das Array zu laden, fügen Sie es hinzu und speichern Sie:
quelle
parse
ist sicherer, da es Sie vor der Codeausführung schützt. Und oft ist es auch viel schneller. Siehe blog.mozilla.com/webdev/2009/02/12/native-json-in-firefox-31JSON.parse('["Lorem", "Ipsum", "Dolor"]').length
Der einfachste Weg ist:
quelle
Zusätzlich zu allen anderen Antworten können Sie die Funktion $ .each aus der jQuery-Bibliothek verwenden:
Holen Sie sich schließlich das Objekt mit:
quelle
$
wird für andere Bibliotheken verwendet und wird häufig auch als Alias für verwendetdocument.querySelectorAll
. Die Frage ist auch nicht als [jquery] -Frage gekennzeichnet.Das funktioniert bei mir in Chrome:
quelle
for(var key in localStorage) { console.log(localStorage.getItem(key)); }
TypeError: Cannot call method 'toString' of null
, also gehe ich davon aus, dass 'Schlüssel' null zurückgibtAufbauend auf der vorherigen Antwort ist hier eine Funktion, die den lokalen Speicher nach Schlüssel durchläuft, ohne die Schlüsselwerte zu kennen.
Wenn Sie die Konsolenausgabe untersuchen, sehen Sie, dass die von Ihrem Code hinzugefügten Elemente alle eine Zeichenfolge haben. Während die eingebauten Elemente entweder Funktionen {[nativer Code]} oder im Fall der Längeneigenschaft eine Zahl sind. Sie können die Variable typeofKey verwenden, um nur nach den Zeichenfolgen zu filtern, sodass nur Ihre Elemente angezeigt werden.
Beachten Sie, dass dies auch dann funktioniert, wenn Sie eine Zahl oder einen Booleschen Wert als Wert speichern, da beide als Zeichenfolgen gespeichert sind.
quelle
Alle diese Antworten ignorieren die Unterschiede zwischen den Implementierungen von localStorage in verschiedenen Browsern. Mitwirkende in diesem Bereich sollten ihre Antworten mit den von ihnen beschriebenen Plattformen stark qualifizieren. Eine browserweite Implementierung ist unter https://developer.mozilla.org/en/docs/Web/API/Window/localStorage dokumentiert und enthält, obwohl sie sehr leistungsfähig ist, nur einige Kernmethoden. Das Durchlaufen der Inhalte erfordert ein Verständnis der Implementierung, die für einzelne Browser spezifisch ist.
quelle
localStorage
ist einObject
.Wir können es mit JavaScript for / in Statement wie jedes andere Objekt durchlaufen .
Und wir werden verwenden,
.getItem()
um auf den Wert jedes Schlüssels (x) zuzugreifen.quelle