如何从sessionStorage(AngularJs)中删除单个对象

DIG*_*OPE 3 javascript angularjs

我将列表添加到sessionStorage,如:

var item = new cartItem(product.id, product.name, product.price, qty);
orderItem.push(item);
sessionStorage.setItem('addedProductsList', JSON.stringify(orderItem));
var retrieveArray= JSON.parse(sessionStorage.addedProductsList);  
Run Code Online (Sandbox Code Playgroud)

它的工作正常,现在我想通过productId从这个列表中删除一个对象.

Art*_*ich 9

请参阅以下文章:http://www.nczonline.net/blog/2009/07/21/introduction-to-sessionstorage/

如果要从会话存储中删除指定键/值对,则需要像这样的smth:

sessionStorage.removeItem(key)
Run Code Online (Sandbox Code Playgroud)

对于你的情况:

var retrieveArray= JSON.parse(sessionStorage.addedProductsList);

for (i=0; i<retrieveArray.length; i++){
    if (retrieveArray[i].id == "Your ProductId") {
        retrieveArray.splice(i,1);
    }
}

sessionStorage.addedProductsList = retrieveArray;
Run Code Online (Sandbox Code Playgroud)

此外,正确的实现允许您从sessionStorage读取,写入和删除值,就像它是常规对象一样.例如:

//save a value
sessionStorage.name = "Name";

//retrieve item
var name = sessionStorage.name;

//remove the key
delete sessionStorage.name;
Run Code Online (Sandbox Code Playgroud)