Localstorage & JSON: как я могу удалить только 1 массив внутри ключа, так как localstorage.removeItem требует весь ключ - PullRequest
5 голосов
/ 14 ноября 2011

У меня есть это в моем локальном хранилище:

[{"id":"item-1","href":"google.com","icon":"google.com"},
{"id":"item-2","href":"youtube.com","icon":"youtube.com"},
{"id":"item-3","href":"google.com","icon":"google.com"},
{"id":"item-4","href":"google.com","icon":"google.com"},
{"id":"item-5","href":"youtube.com","icon":"youtube.com"},
{"id":"item-6","href":"asos.com","icon":"asos.com"},
{"id":"item-7","href":"google.com","icon":"google.com"},
{"id":"item-8","href":"mcdonalds.com","icon":"mcdonalds.com"}]

Как я могу удалить только id:item-3, когда localstorage.removeItem требуется полный ключ?

Я использую этот метод для обновления определенного значения в массиве: http://jsfiddle.net/Qmm9g/, поэтому, используя тот же метод, я хочу удалить конкретный массив.

Обратите внимание, что кнопка для удаления уже есть. Эта кнопка, я хочу функцию, которая удалит весь массив ({"id":"item-3","href":"google.com","icon":"google.com"}) с ID:item-3

Ответы [ 3 ]

8 голосов
/ 15 ноября 2011

Как-то так будет работать, я не уверен, что это лучший способ сделать это - 1001 * лучший . Может быть, лучше локальный способ хранения -

var json = JSON.parse(localStorage["results"]);
for (i=0;i<json.length;i++)
            if (json[i].id == 'item-3') json.splice(i,1);
localStorage["results"] = JSON.stringify(json);
6 голосов
/ 15 ноября 2011

Вы можете использовать функцию jQuery $. Each () вместе с методом JavaScript splice , чтобы удалить весь объект следующим образом:

$.each(json, function(index, obj){
    if (obj.id == 'item-3') {
        json.splice(index,1);
        console.log(json);
        localStorage["results"] = JSON.stringify(json);
        return false;
    }
});

Обновленная скрипка: http://jsfiddle.net/Qmm9g/3/

Надеюсь, это поможет!

1 голос
/ 09 мая 2016

Это мой код для удаления объекта из localStorage.

 {
"admin": {
    "pass": "1234",
    "task": [
        {"id": "1", "taskName": "assignedTask", "taskDesc": "jhdjshdh"},
        {"id": "2", "taskName": "assignedTask", "taskDesc": "jhdjshdh"},
        {"id": "3", "taskName": "assignedTask", "taskDesc": "jhdjshdh"},
        {"id": "4", "taskName": "assignedTask", "taskDesc": "jhdjshdh"}
    ]
 }


    function filterData() {
        var data = JSON.parse(localStorage.task);
        //console.log(data);
        var newData = data.filter(function(val){
            return (val.YourPropertyName !== key.value && val.YourPropertyName !== val.value );
        });
        localStorage.task = JSON.stringify(newData);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...