簡體   English   中英

LocalStorage-按值而不是鍵刪除項目?

[英]LocalStorage - Remove item by value and not key?

好的,所以我在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}

謝謝。

LocalStorage帶有長度,因此您可以知道要存儲多少個值,還可以使用方法來找到索引中的鍵。

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM