Ich versuche LocalStorage durchlaufen, um alle Elemente über localStorage.length
erhalten, die mit meinem Suchalgorithmus funktioniert. Wenn ich ändere: i < localStorage.length
innerhalb der for-Schleife, um einfach eine Zahl, d. H .: for (i=0; i<100; i++)
anstelle von: (i=0; i<=localStorage.length-1; i++)
, alles funktioniert. Ich weiß jedoch, dass das Problem in dem Suchalgorithmus liegen könnte.Schleife und durchsuchen Sie alle Elemente in localStorage
Der Code bekommen alle Elemente: (!?)
var name = new Array();
for (var i = 0; i <= localStorage.length - 1; i++) { // i < 100 works perfectly
key = localStorage.key(i);
val = localStorage.getItem(key);
value = val.split(","); //splitting string inside array to get name
name[i] = value[1]; // getting name from split string
}
Mein Arbeitssuchalgorithmus:
if (str.length == 0) {
document.getElementById("searchResult").innerHTML = "";
}
else {
if(str.length > 0) {
var hint = "";
for(var i=0; i < name.length; i++) {
if(str.toLowerCase() == (name[i].substr(0, str.length)).toLowerCase()) { //not sure about this line
if(hint == "") {
hint = name[i];
} else {
hint = hint + " <br /> " + name[i];
}
}
}
}
}
if(hint == "") {
document.getElementById("searchResult").innerHTML=str + " står inte på listan";
} else {
document.getElementById("searchResult").innerHTML = hint;
}
}
Was mit meinem localStorage.length
falsch ist, oder was ist mit dem Suchalgorithmus falsch?
vielleicht würde diese SO Antwort für Sie nützlich sein: http://StackOverflow.com/Questions/3138564/Looping-Through-Localstorage-in-HTML5-and-Javascript –
Was ist die tatsächliche Länge Ihrer localStorage? Versuchen Sie, die gleiche Nummer anstelle von 100 zu durchlaufen. Mein Denkprozess ist, dass es ein Problem mit Daten geben kann, die nach 100 gespeichert sind (nicht in dem Format, das Sie erwarten). – Ramesh
Verwenden Sie 'var i', um das Erstellen einer globalen Variablen zu vermeiden (was besonders für eine Schleifenvariable extrem schlecht ist) – ThiefMaster