gpt4 book ai didi

javascript - 如何改进这个 session 存储命名系统/for循环?

转载 作者:行者123 更新时间:2023-12-03 07:09:12 29 4
gpt4 key购买 nike

我有一个购物车,它使用 session 存储来存储元素。当用户单击“添加到购物车”时,它会存储一个新对象,其键等于点击计数,值等于项目名称。然后我使用这个 for 循环来读取值:

for (var i = 0; i < sessionStorage.length -1; i++) {
if( sessionStorage.getItem(i + 1) != null ) {
...
"<span class='item'>" + sessionStorage.getItem(i + 1) + "</span>" +

问题来了。假设我从购物车中删除了 5 件商品中的第 3 件。如果我添加另一个项目,它将被称为“6”,但我的项目将是 1, 2, 4, 5, 6。我的 for 循环将仅识别项目 1, 2, 4 和 5。我如何识别项目 6 ?我通过将 for 循环检查到 50 来进行快速修复,但这看起来很草率并且占用大量资源......

最佳答案

从技术上讲,每个循环都可以解决您的问题;

for (var e in sessionStorage) {
document.write(e + '=>' + sessionStorage[e]);
}

但是,无论您如何访问元素,以这种方式使用 sessionStorage 都是一个糟糕的设计选择。首先,由于 sessionStorage 是同一页面中不同脚本之间的共享资源,因此任何其他脚本(例如您可能使用的库)都可能会向 sessionStorage 添加一些内容,并且您的脚本会变得困惑。从长远来看,对数据进行封装(例如使用 JSON 对其进行序列化并使用脚本的唯一 key 将其置于 sessionStorage 下)将为您提供更多帮助。

关于javascript - 如何改进这个 session 存储命名系统/for循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36683884/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com