我正在尝试用新的已更新数组更新localstorage项。我面临的问题是,我不能正确地更新我的数组并将其发送到localstorage项。所以我尝试的是先得到本地存储项。然后查找键为qid
的现有对象。如果找到,则使用qP_val
更新qty
值。我能够开始工作,但我如何使用此阵列的更新版本更新现有阵列stored_quote
?
function updateQuoteProduct(qP, qP_val){
var stored_quote = JSON.parse(localStorage.getItem("iwQuote"));
obj = stored_quote.findIndex((obj => obj.qid === qP));
stored_quote[obj].qty = parseInt(qP_val)
/* now I want to push the updated array back to */
/* the original stored_quote array and replace */
/* the old object */
/********************************************** */
stored_quote.push(stored_quote[obj])
/* update the localStorage again with new data */
localStorage.setItem("iwQuote", JSON.stringify(stored_quote));
}
字符串
2条答案
按热度按时间i2loujxw1#
此语句
stored_quote.push(stored_quote[obj])
导致问题,因为您正在将更新的对象推回数组。因此,它是复制它而不是覆盖它。因此,您不需要再次推动对象。相反,您可以直接更新数组中的对象(您已经这样做了),它将自动反映更改。
示例**:**
字符串
xzv2uavs2#
我认为在你更新对象之后,你再次推动数组,它创建了一个重复的对象。
字符串
}