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

问题描述 投票:0回答:3

好的,我在 LocalStorage 中存储了这样的 JSON :

[{"pseudo":"Lucia","id":2},{"pseudo":"Romain","id":1}]

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

storage.removeItem(keyName);

但是,如果我错了,请纠正我,如果我使用它,如果我执行 storage.removeItem(pseudo); ,则会删除 keyName “pseudo”的所有值;

我怎样才能只从json中删除

{"pseudo":"Romain","id":1}
并保留
{"pseudo":"Lucia","id":2}

谢谢你。

javascript json local-storage
3个回答
2
投票

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

1
投票

LocalStorage 附带一个 length,以便您知道存储了多少个值,以及一个方法 key,可让您在索引处查找键。

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

0
投票

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.splice(indexToRemove, 1);

// 将对象放入存储中 localStorage.setItem('keyName', JSON.stringify(storedNames));

© www.soinside.com 2019 - 2024. All rights reserved.