2016-10-03 84 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" 
}