Sto provando a passare da localStorage per ottenere TUTTI gli articoli tramite localStorage.length
che funziona con il mio algoritmo di ricerca. Se cambio: i < localStorage.length
all'interno del ciclo for a semplicemente un numero, ad esempio: for (i=0; i<100; i++)
anziché: (i=0; i<=localStorage.length-1; i++)
, funziona tutto il. Tuttavia, mi rendo conto che il problema potrebbe risiedere nell'algoritmo di ricerca.Loop e ricerca attraverso TUTTE le voci in localStorage
Il codice di ottenere tutti gli articoli: (!?)
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
}
mio lavoro algoritmo di ricerca:
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;
}
}
Cosa c'è di sbagliato con il mio localStorage.length
, o che cosa c'è di sbagliato con l'algoritmo di ricerca?
forse questa risposta SO sarebbe utile per voi: http://stackoverflow.com/questions/3138564/looping-through-localstorage-in-html5-and-javascript –
Qual è la lunghezza effettiva del localStorage? Prova a ripetere lo stesso numero invece di 100. Il mio pensiero è che potrebbe esserci un problema con i dati memorizzati dopo 100 (come non nel formato che ti aspetti). – Ramesh
Si prega di usare 'var i' per evitare di creare una variabile globale (che è estremamente cattiva, specialmente per una variabile di ciclo) – ThiefMaster