2016-10-03 83 views
0

對象鍵有了這樣一個對象:迭代通過在Javascript

req.body = { 
    currency : "USD", 
    item_name_1: "something", 
    item_price_1: "something else", 
    item_name_2: "something", 
    item_price_2: "something else", 
    item_name_3: "something", 
    item_price_3: "something else", 
    address: "some address" 
    itemCount: 3  
} 

什麼是隻得到唯一的項目名稱的鍵/值對??最好的方式,我會嘗試這樣的事情但是當然它不起作用:

var cart= ""; 
for (var i=1; i<= req.body.itemCount;i++){ 
    cart += req.body.item_name_+i+ 
     " "+req.body.item_price_+i;  
} 

在此先感謝!

回答

-1

如果你想抓住基於字符串從一個對象的值文字或字符串,您需要使用[]表示法,其中[]之間的值是一個字符串。您可以通過+運算符從字符串文字和變量中構建一個字符串。將您的字符串連接更改爲:

cart += req.body["item_name_" + i] 
     + " " 
     + req.body["item_price_" + i];  
+0

非常感謝!它的工作原理 –

+0

謝謝。我不確定是誰投了票。 –

0

沒有檢查這個那麼可能需要更動,但我相信它會是這樣的:

req.body["item_name_" + i] 

req.body["item_price_" + i] 
2

req.body.item_name_+i 

相反這將工作:

req.body["item_name_" + i] 

不過,我強烈建議你,如果你能重新考慮你的方法,並重構你的數據到這個:

req.body = { 
    currency : "USD", 
    items: [ 
     { name: "something", price: "something else" }, 
     { name: "something", price: "something else" }, 
     { name: "something", price: "something else" } 
    ], 
    address: "some address" 
}