Javascript 在控制台中显示JSON键

Javascript 在控制台中显示JSON键,javascript,arrays,json,Javascript,Arrays,Json,我很难在控制台中显示按键(“苹果iPhone 5S”、“Solio Mono太阳能充电器”、“24个月保修包”)(基本上,显示每个项目的价格。) 我尝试使用JSON.parse(购物车)并使用: var arr = Object.keys(cart.Item).map(function(k) { return cart.Item[k] }); 但控制台仅显示以下内容: [[object Object] { price: 299.99, productId: 688, url: "h

我很难在控制台中显示按键(“苹果iPhone 5S”、“Solio Mono太阳能充电器”、“24个月保修包”)(基本上,显示每个项目的价格。)

我尝试使用JSON.parse(购物车)并使用:

var arr = Object.keys(cart.Item).map(function(k) { return cart.Item[k] });
但控制台仅显示以下内容:

[[object Object] {
  price: 299.99,
  productId: 688,
  url: "http://website.com/phone_iphone5s.html"
}, [object Object] {
  price: 29.95,
  productId: 655,
  url: "http://website.com/solio_charger.html"
}, [object Object] {
  price: 129.95,
  productId: 681,
  url: "http://website.com/24_month_warranty.html"
}]
我确实注意到“Item”是作为对象而不是数组编写的。我是否应该将对象更改为数组以便“.map”函数工作

这是我的JSBin:

我的代码是:

var arr = Object.keys(cart.Item).map(function(k) { return cart.Item[k] });
// var arrStr = JSON.parse(cart);

// console.log(arrStr);

console.log(arr);
function myCart(){ 
  var myLen = cart.Item.count;
  console.log("Items: " + cart.Items);
  for(var i=0; i<myLen; i++){
    console.log("- " + cart.Item[i] + " (" + cart.Item[i].price + ")");
  }
  console.log("Total: " + cart.Total);
};

myCart();
编写一个JavaScript函数,在浏览器控制台中以如下所示的精确格式输出商品总数、每个商品的价格以及购物车的总价值。代码越少越好

注意:JSON对象只是一个例子。代码应该适用于任何具有相同结构的JSON对象,因此不要使用硬编码键(“苹果iPhone 5S”、“Solio Mono Solar充电器”、“24个月保修包”)

结果:

Items: 3
- Apple iPhone 5S ($299.99)
- Solio Mono Solar Charger ($29.95)
- 24 Month Warranty Package ($129.95)
Total: 459.89
比如:

var arr = Object.keys(cart.Item).map(function(k) { 
    return k + " ($" + cart.Item[k].price + ")";
});
您之前刚刚输出了对象本身。如果要输出具有特定格式的特定字符串,则需要显式形成返回以反映该格式。

类似于:

var arr = Object.keys(cart.Item).map(function(k) { 
    return k + " ($" + cart.Item[k].price + ")";
});
您之前刚刚输出了对象本身。如果您想以某种格式输出特定字符串,您需要显式地形成返回以反映这一点。

这不是最不重要的,但您仍然需要至少为购物车中的项目多出两行,以及总计。使用
\r\n
创建换行符

var-cart={
“项目”:3,
“项目”:{
“苹果iPhone 5S”:{
“productId”:688,
“url”:”http://website.com/phone_iphone5s.html",
“价格”:299.99
},
“Solio Mono太阳能充电器”:{
“productId”:655,
“url”:”http://website.com/solio_charger.html",
“价格”:29.95
},
“24个月保修包”:{
“productId”:681,
“url”:”http://website.com/24_month_warranty.html",
“价格”:129.95
}
},
“总计”:459.89
},
cartInner='';
//添加总项目;
cartInner+='项目:'+购物车项目;
//循环浏览项目。
for(购物车项目中的var项目){
cartInner+=“\r\n”+'-'+item+'($'+cart.item[item].price+');
}
//加总
cartInner+=“\r\n”+'Total:“+cart.Total;
//输出到控制台
console.log(cartInner);
这并不是最不重要的,但您仍然需要至少再为购物车中的项目添加两行,以及总计。使用
\r\n
创建分隔行

var-cart={
“项目”:3,
“项目”:{
“苹果iPhone 5S”:{
“productId”:688,
“url”:”http://website.com/phone_iphone5s.html",
“价格”:299.99
},
“Solio Mono太阳能充电器”:{
“productId”:655,
“url”:”http://website.com/solio_charger.html",
“价格”:29.95
},
“24个月保修包”:{
“productId”:681,
“url”:”http://website.com/24_month_warranty.html",
“价格”:129.95
}
},
“总计”:459.89
},
cartInner='';
//添加总项目;
cartInner+='项目:'+购物车项目;
//循环浏览项目。
for(购物车项目中的var项目){
cartInner+=“\r\n”+'-'+item+'($'+cart.item[item].price+');
}
//加总
cartInner+=“\r\n”+'Total:“+cart.Total;
//输出到控制台

console.log(cartInner);
将密钥包含在返回输出中?@Jecoms我以为我包含了?您可以使用JSON.stringify将整个JSON作为字符串输出。将密钥包含在返回输出中?@Jecoms我以为我包含了?您可以使用JSON.stringify将整个JSON作为字符串输出。工作得很好谢谢!工作得很好谢谢!