Estoy tratando de recorrer LOCAL Almacenamiento para obtener TODOS los artículos a través de localStorage.length
que funciona con mi algoritmo de búsqueda. Si cambio: i < localStorage.length
dentro del bucle for a simplemente un número, es decir: for (i=0; i<100; i++)
en lugar de: (i=0; i<=localStorage.length-1; i++)
, everthing funciona. Sin embargo, me doy cuenta de que el problema podría estar en el algoritmo de búsqueda.Bucle y búsqueda a través de TODOS los elementos en localStorage
el código para conseguir todos los artículos: (!?)
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
}
Mi trabajo algoritmo de búsqueda:
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;
}
}
¿Qué está mal con mi localStorage.length
, o lo que es malo en el algoritmo de búsqueda?
quizás esta respuesta SO sea útil para usted: http://stackoverflow.com/questions/3138564/looping-through-localstorage-in-html5-and-javascript –
¿Cuál es la longitud real de su almacenamiento local? Intente recorrer el mismo número en lugar de 100. Mi proceso de pensamiento es que puede haber un problema con los datos almacenados después de 100 (como no en el formato esperado). – Ramesh
Utilice 'var i' para evitar crear una variable global (que es extremadamente mala, especialmente para una variable de bucle) – ThiefMaster