首页 > 解决方案 > 将本地存储项添加到 javascript 数组中

问题描述

再会。我正在为本地存储中的电子商务 Web 应用程序收集产品信息(购物车)。我需要将 productId 发送到 STRIPE api,但我遇到了麻烦。本地存储变量如下

window.localStorage.getItem('products')

它输出一个如下所示的数组

[{"productId":"37", "quantity":"2"}]

条带 API 需要这样的格式

var purchase = { 
  items: [{ id: 2235 }]
};

我想我可以通过下面的代码来完成它

var newarr = window.localStorage.getItem('products');
var purchase = {
  items: []
};
for (var i in newarr) {
  var item = newarr[i];

  purchase.items.push({
    id: item.productId
  });
}

不幸的是,我做错了什么。有任何想法吗???数组和对象是我的弱点 :(

标签: javascriptjqueryarraysstripe-payments

解决方案


localStorage项目始终作为字符串存储和检索。

您需要在读取数据时将其转换为相应的对象时间。在您的情况下,您需要读取的是 JSON 对象。这应该可以解决问题

var newarr = JSON.parse(window.localStorage.getItem('products'));

如果您仍然无法获得它,JSON.stringify请在存储之前申请数据localStorage


推荐阅读