Javascript 无法使用对象id从localStorage中删除对象
每当用户单击“删除”按钮时,就会调用Javascript 无法使用对象id从localStorage中删除对象,javascript,Javascript,每当用户单击“删除”按钮时,就会调用removeFromLocalStorage()函数,该函数接收一个数字类型变量pizzaId。现在,这个pizzaId存储在本地存储中,我想从本地存储中删除与这个pizzaId关联的对象 控制台输出 请帮助我使用productID从本地存储中删除对象。如果您只需要删除所选的产品,您可以这样做: function removeLocalStorageHelper(item, pizzaId) { console.log(item.productID);
removeFromLocalStorage()
函数,该函数接收一个数字类型变量pizzaId
。现在,这个pizzaId
存储在本地存储中,我想从本地存储中删除与这个pizzaId
关联的对象
控制台输出
请帮助我使用
productID
从本地存储中删除对象。如果您只需要删除所选的产品,您可以这样做:
function removeLocalStorageHelper(item, pizzaId) {
console.log(item.productID);
console.log(pizzaId);
if (item.productID == pizzaId) {
console.log("Working fine");
localStorage.removeItem(item);
console.log(localStorage);
}
}
function removeFromLocalStorage(pizzaId) {
var locStore = JSON.parse(localStorage.getItem("selectedProduct"));
var cartRowContents = locStore.map((item) =>
removeLocalStorageHelper(item, pizzaId)
);
}
如果您只需要删除所选的产品,您可以这样做:
function removeLocalStorageHelper(item, pizzaId) {
console.log(item.productID);
console.log(pizzaId);
if (item.productID == pizzaId) {
console.log("Working fine");
localStorage.removeItem(item);
console.log(localStorage);
}
}
function removeFromLocalStorage(pizzaId) {
var locStore = JSON.parse(localStorage.getItem("selectedProduct"));
var cartRowContents = locStore.map((item) =>
removeLocalStorageHelper(item, pizzaId)
);
}
不能直接从存储阵列中删除项。为此,您需要从阵列中删除所需的元素,然后再次插入到localStorage,如下所示。否则,它将从本地存储中删除完整列表 注意:将新项添加到本地存储也需要执行相同的操作
函数从本地存储中移除(pizzaId){
var locStore=JSON.parse(localStorage.getItem(“selectedProduct”);
var cartRowContents=locStore.filter((项目)=>item.productID!==pizzaId);
localStorage.setItem(“selectedProduct”,JSON.stringify(cartRowContents))
}
您不能直接从存储阵列中删除项。为此,您需要从阵列中删除所需的元素,然后再次插入到localStorage,如下所示。否则,它将从本地存储中删除完整列表
注意:将新项添加到本地存储也需要执行相同的操作
函数从本地存储中移除(pizzaId){
var locStore=JSON.parse(localStorage.getItem(“selectedProduct”);
var cartRowContents=locStore.filter((项目)=>item.productID!==pizzaId);
localStorage.setItem(“selectedProduct”,JSON.stringify(cartRowContents))
}
当我查看您的代码时,我看到您正在从localStorage中检索项目,就像这样localStorage.getItem(“selectedProduct”)
这里的问题是您想删除整个LocalStore
还是只删除其中的一部分。可能locStore
是来自多个产品的复杂集合(数组),而不是如代码所示的单个实体
localStorage.removeItem("selectedProduct");
如果是这种情况,你需要这样做
var cartRowContents = locStore.map((item) =>
removeLocalStorageHelper(item, pizzaId));
var locStore = locStore.filter(function(item, index){
return item.productID != pizzaId;
});
现在您有了一个locStore
集合,其中没有要删除的项,您必须像这样将其保存回localStorage
var cartRowContents = locStore.map((item) =>
removeLocalStorageHelper(item, pizzaId));
var locStore = locStore.filter(function(item, index){
return item.productID != pizzaId;
});
实际上,您正在使用不包含已删除产品的新值覆盖localStorage
中的旧selectedProduct
值
如果出于某种原因,locStore
只是一个简单的JSON对象,您可以从localStorage
localStorage.setItem('selectedProduct', JSON.stringify(locStore));
当我查看代码时,我看到您正在从localStorage中检索项目,如下所示
localStorage.getItem(“selectedProduct”)
这里的问题是您希望删除整个LocalStore
还是只删除其中的一部分。可能locStore
是来自多个产品的复杂集合(数组),而不是如代码所示的单个实体
localStorage.removeItem("selectedProduct");
如果是这种情况,你需要这样做
var cartRowContents = locStore.map((item) =>
removeLocalStorageHelper(item, pizzaId));
var locStore = locStore.filter(function(item, index){
return item.productID != pizzaId;
});
现在您有了一个locStore
集合,其中没有要删除的项,您必须像这样将其保存回localStorage
var cartRowContents = locStore.map((item) =>
removeLocalStorageHelper(item, pizzaId));
var locStore = locStore.filter(function(item, index){
return item.productID != pizzaId;
});
实际上,您正在使用不包含已删除产品的新值覆盖localStorage
中的旧selectedProduct
值
如果出于某种原因,locStore
只是一个简单的JSON对象,您可以从localStorage
localStorage.setItem('selectedProduct', JSON.stringify(locStore));
您需要提供密钥才能从本地存储中删除特定项。
item
在映射器函数中不是密钥,而是活动对象。您需要提供密钥才能从本地存储中删除特定项。item
在映射器函数中不是密钥,它是一个活动对象。在selectedProduct中的每个对象内都有一个键“productId”。我想删除productId==pizzaIdOkay的对象,现在我明白了。Anton Kovachev的答案应该能回答您的问题。selectedProduct中的每个对象内部都有一个键“productId”。我想删除productId==pizzaIdOkay的对象,现在我明白了。安东·科瓦切夫的回答应该能回答你的问题。谢谢。它起作用了。我们只需要使用localStorage.setItem(“selectedProduct”,JSON.stringify(cartRowContents));谢谢它起作用了。我们只需要使用localStorage.setItem(“selectedProduct”,JSON.stringify(cartRowContents));