LocalStorage -按值而不是键删除项

LocalStorage - Remove item by value and not key?

本文关键字:删除 LocalStorage      更新时间:2023-09-26

LocalStorage:

中有这样一个JSON
[{"pseudo":"Lucia","id":2},{"pseudo":"Romain","id":1}]

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

storage.removeItem(keyName);

但是,纠正我,如果我错了,如果我使用这将删除所有的值与keyName "pseudo"如果我做storage.removeItem(pseudo);

如何从json中只删除{"pseudo":"Romain","id":1}而保留{"pseudo":"Lucia","id":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));

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