Проверка на наличие дубликатов с использованием jQuery и localStorage

0

Нужно проверять дубликаты перед сохранением новых значений в localStorage.

Здесь работает скрипка, которая делает все, что мне нужно, кроме этого.

Пожалуйста, не стесняйтесь предлагать любые другие способы, которые вы видите, которые помогут мне улучшить обучение.

Вот часть кода, которая в скрипке:

("button#save").click(function () {
    var id = $("#id").val();


    if (id != "") {
        var text = 'http://' + id + '.tumblr.com';
    } else {
        alert('empty');
        return false
    }

    // UPDATE
    var result = JSON.parse(localStorage.getItem("blog"));
    if (result == null) result = [];

    result.push({
        id: id,
        tumblr: text
    });
    // SAVE
    localStorage.setItem("blog", JSON.stringify(result));


    // APPEND
    $("#faves").append('<div class="blog"><button class="del" id=' + id + '>x</button><a target="_blank" href=' + text + '>' + imgstem + id + imgstemclose + '</a></div>');


});

// INIT
var blog = JSON.parse(localStorage.getItem("blog"));
var stem = 'http://'
var stemclose = '.tumblr.com';
var imgstem = '<img src="http://api.tumblr.com/v2/blog/'
var imgstemclose = '.tumblr.com/avatar/48"/>'

//console.log(blog[0].id);

if (blog != null) {
    for (var i = 0; i < blog.length; i++) {
        var item = blog[i];
        var text = 'http://' + item.id + '.tumblr.com';
        $("#faves").append('<div class="blog"><button class="del" id=' + item.id + '>x</button><a  href=' + text + '>' + imgstem + item.id + imgstemclose + '</a></div>');

    }
}

$('#faves').on('click', 'button.del', function (e) {

    var id = $(e.target).attr('id');

    // UPDATE
    var blog = JSON.parse(localStorage.getItem("blog"));

    var blog = blog.filter(function (item) {
        return item.id !== id;
    });

    // SAVE
    localStorage.setItem("blog", JSON.stringify(blog));


    // REMOVE
    $(e.target).parent().remove();

});
Теги:

1 ответ

2
Лучший ответ

См. Очень простую реализацию

$("button#save").click(function () {
    var id = $("#id").val();

    if (id == "") {
        alert('empty');
        return false
    }

    // UPDATE
    var result = JSON.parse(localStorage.getItem("blog")) || [];

    var loc = result.filter(function (item) {
        return item.id === id;
    });
    if (loc.length) {
        return;
    }

    var text = 'http://' + id + '.tumblr.com';
    result.push({
        id: id,
        tumblr: text
    });
    // SAVE
    localStorage.setItem("blog", JSON.stringify(result));


    // APPEND
    $("#faves").append('<div class="blog"><button class="del" id=' + id + '>x</button><a target="_blank" href=' + text + '>' + imgstem + id + imgstemclose + '</a></div>');
});

Демо: скрипка

Ещё вопросы

Сообщество Overcoder
Наверх
Меню