我将列表添加到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);
并且工作正常,现在我想通过productId从此列表中删除单个对象。
答案 0 :(得分:9)
请参阅以下文章:http://www.nczonline.net/blog/2009/07/21/introduction-to-sessionstorage/
如果要从会话存储中删除指定键/值对,则需要这样的smth:
sessionStorage.removeItem(key)
对于你的情况:
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;
此外,正确的实现允许您从sessionStorage读取,写入和删除值,就像它是常规对象一样。例如:
//save a value
sessionStorage.name = "Name";
//retrieve item
var name = sessionStorage.name;
//remove the key
delete sessionStorage.name;