Tôi đang cố gắng lặp qua localStorage để nhận TẤT CẢ các mục qua localStorage.length
hoạt động với thuật toán tìm kiếm của tôi. Nếu tôi thay đổi: i < localStorage.length
bên trong vòng lặp for chỉ đơn giản là một số, nghĩa là: for (i=0; i<100; i++)
thay vì: (i=0; i<=localStorage.length-1; i++)
, everthing hoạt động. Tuy nhiên, tôi nhận ra vấn đề có thể nằm trong thuật toán tìm kiếm.Vòng lặp & tìm kiếm qua TẤT CẢ các mục trong localStorage
Mã này nhận được tất cả các mục: (!?)
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
}
tôi làm việc tìm kiếm thuật toán:
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;
}
}
Điều gì là sai với localStorage.length
của tôi, hoặc những gì là sai với các thuật toán tìm kiếm?
có lẽ câu trả lời SO này sẽ hữu ích cho bạn: http://stackoverflow.com/questions/3138564/looping-through-localstorage-in-html5-and-javascript –
Độ dài thực tế của localStorage của bạn là bao nhiêu? Hãy thử lặp qua cùng một số thay vì 100. Quá trình suy nghĩ của tôi là, có thể có sự cố với dữ liệu được lưu trữ sau 100 (chẳng hạn như định dạng bạn mong đợi). – Ramesh
Vui lòng sử dụng 'var i' để tránh tạo biến toàn cục (cực kỳ xấu, đặc biệt đối với biến vòng lặp) – ThiefMaster