簡體   English   中英

將本地存儲項添加到 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM