LocalStorage - 按值删除项目而不是键?

时间:2016-09-07 10:05:26

标签: javascript json local-storage

好的,我在LocalStorage中有一个像JSON这样的JSON:

storage.removeItem(keyName);

我搜索了如何移除一个项目,我只找到了这个:

{"pseudo":"Romain","id":1}

但是,如果我错了,请纠正我,如果我使用它将使用keyName删除所有值"伪"如果我做storage.removeItem(伪);

如何从json中删除{"pseudo":"Lucia","id":2}并保留backbarbutton

谢谢。

2 个答案:

答案 0 :(得分:1)

LocalStorage附带一个长度,因此您可以知道存储了多少个值以及一个方法 key ,它可以让您在索引处找到密钥。

function removeLocalStorageValues(target) {
    let i = localStorage.length;
    while (i-- > 0) {
        let key = localStorage.key(i);
        if (localStorage.getItem(key) === target) {
            localStorage.removeItem(key);
        }
    }
}

答案 1 :(得分:1)

localstorage仅支持字符串值,因此您需要解析数据。

    var storedNames = JSON.parse(localStorage.getItem("keyName"));

    // here you need to make a loop to find the index of item to delete
    var indexToRemove = 1;

    //remove item selected, second parameter is the number of items to delete 
    storedNames.slice(indexToRemove, 1);

   // Put the object into storage
   localStorage.setItem('keyName', JSON.stringify(storedNames));