![](/img/trans.png)
[英]Add items to basket and store in localStorage with JavaScript
[英]Add localstorage items into a javascript array
再會。 我正在為本地存儲中的電子商務 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
});
}
不幸的是,我做錯了什么。 有任何想法嗎??? Arrays 和對象是我的弱點:(
localStorage
項目始終作為字符串存儲和檢索。
讀取數據時需要將其轉換為相應的 object 時間。 在您的情況下,您需要閱讀 JSON object。 這應該可以解決問題
var newarr = JSON.parse(window.localStorage.getItem('products'));
如果您仍然無法獲得它,請在存儲到localStorage
之前對數據應用JSON.stringify
。
localStorage.getItem
是字符串,因此您需要使用JSON.parse()
解析它
這里添加了一個fiddle 。 希望這會有所幫助
window.localStorage.setItem('products','[{"productId":"37", "quantity":"2"}]');
var newarr = JSON.parse(window.localStorage.getItem('products'));
//console.log(newarr);
var purchase = {
items: []
};
for(var i in newarr) {
var item = newarr[i];
purchase.items.push({
"id" : item.productId
});
}
console.log('final array see console',purchase)
也許試試這個
const newarr = window.localStorage.getItem('products');
const parsedAr = JSON.parse(newarr);
const purchase = {
items: parsedAr
};
// prepare for testing...
localStorage.setItem("products", '[{"productId":"37", "quantity":"2"}, {"productId":"137", "quantity":"12"}]')
console.log(localStorage.getItem("products"))
// this is what you ask for:
let purchase =
// parse string from localStorage as object that has productId property
JSON.parse(localStorage.getItem("products")).
// for each object create new one and make "id" from "productId"
map(myOb => { return { "id": myOb["productId"] } });
console.log(purchase);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.