Я сохраняю список изображений (из галереи) на устройство с использованием LocalStorage. Я решил проблему по большей части - получение и удаление данных, а также заполнение списка HTML-элементов, которые находятся там. Легко.HTML5 LocalStorage - проверка повторяющихся значений
Теперь я пытаюсь поставить чек, чтобы посмотреть сохраненный элемент, проверить все значения в базе данных и добавить его только в том случае, если это не дубликат. По мере того, как я строил это, я все глубже и глубже дышу, и я нахожусь в той точке, где мне нужна помощь.
Вот моя функция в данный момент:
function storeFavourite(currentImage) {
for (var i=0; i < localStorage.length; i++) {
item = localStorage.getItem('fav'+i);
if (item = currentImage) {
console.log('fav'+i+', '+currentImage+' in db already');
} else {
next = localStorage.length;
localStorage.setItem('fav'+next, currentImage);
console.log('fav'+next+', '+currentImage);
updateFavouritesList();
}
}
}
Это большой беспорядок, и я полностью путать себя. Может ли кто-нибудь помочь мне понять это?
Я вовсе не против переформатировать структуру данных, если это необходимо. На данный момент клавиши fav0
, fav1
и так далее.
Функция updateFavouritesList()
, используемая там, просто выполняет итерацию по базе данных localStorage и создает из нее <li>
элементов для добавления в список.
Я попытался назначить различных операторов, но это не делает большой разницы (только начали возвращать ложь вместо истины и наоборот). Ваше решение отлично работает, спасибо. – adnrw
Нет проблем. Если операторы не имеют большого смысла, стоит больше узнать об оценке выражений, «правдивости» и «ложности». 'a = b' оценивает любое значение' b' (следовательно, почему 'a = (b = c)' приведет к тому, что 'a' будет присвоено значение' c'). К тому же, если 'c' не' null', 'undefined',' 0', 'false',' NaN' или '' '', он будет преобразован в 'true', когда требуется логическое значение. – Stoive