HTML5 LocalStorage-检查重复值

HTML5 LocalStorage - check for duplicate values

本文关键字:检查 LocalStorage- HTML5      更新时间:2023-09-26

我正在使用LocalStorage将图像列表(从库中)保存到设备中。我已经在很大程度上解决了这个问题——输入和输出数据,并填充其中项目的HTML列表。容易的

我现在正尝试签入以查看正在保存的项目,检查数据库中的所有值,只有在不重复的情况下才添加它。在我建造这座建筑的过程中,我陷入了一个越来越深的困境,正处于需要帮助的地步。

这是我目前的功能:

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(); 
    }
}
}

这一团糟,我完全弄糊涂了。有人能帮我弄清楚吗?

如果需要,我一点也不反对重新格式化数据结构。目前的密钥是fav0fav1等等

那里使用的updateFavouritesList()函数只是在localStorage数据库上迭代,并从中创建<li>项以添加到列表中。

行中有一个错误:

if (item = currentImage) {

您正在分配item。如果item不是null/empty/zero/falsy,那么它将始终解析为true。也许应该是:

if (item == currentImage) {

甚至:

if (item === currentImage) {

取决于currentImage是哪种类型。

编辑:在任何情况下,这里有一个功能,它将做你想要的:

function storeFavourite(item) {
    for (var i in localStorage) {
        if (localStorage[i] === item) return;
    }
    localStorage["fav" + localStorage.length] = item;
}