[英]how to get price data from 2d array in javascript?
我有如下 json。 在这种情况下,我想要做的是计算每个用户的价格总和,例如 user001: 91.68
我遇到的问题是我正在尝试编写 for 循环以从 json 获取这些数据,但我必须将直接用户编号(例如 user001)分配给代码。 我想像shoppingJson[i][j]那样使用它
我只有在下面写时才能得到结果
console.log(shoppingJson[0].user001[0].price)
我应该如何访问二维数组值?
var shoppingJson = [{
"user001": [
{
"productId": "123",
"name": "Product 123",
"price": 14.23
},
{
"productId": "456",
"name": "Product 456",
"price": 4.56
},
{
"productId": "789",
"name": "Product 789",
"price": 72.89
}
]},{
"user002": [
{
"productId": "321",
"name": "Product 321",
"price": 3.21
},
{
"productId": "654",
"name": "Product 654",
"price": 61.54
},
{
"productId": "987",
"name": "Product 987",
"price": 59.87
}
]},{
"user003": [
{
"productId": "777",
"name": "Product 888",
"price": 4.213
},
{
"productId": "888",
"name": "Product 999",
"price": 6.24
},
{
"productId": "999",
"name": "Product 111",
"price": 9.71
}
]}
]
var price = {};
for(item of shoppingJson){
for( user in item ){
price[user] = 0;
for(product of item[user]){
price[user] += product.price;
}
}
}
执行此操作后,您将获得对象price
的总和。 对象price
将包含以下内容
{
user001: 91.68,
user002: 124.62,
user003: 20.163
}
shoppingJson.forEach(function(obj) {
var totalPrice = 0;
for(key in obj) {
obj[key].forEach(function(o) {
totalPrice += o.price;
});
};
console.log(totalPrice);
});
您可以使用 forEach 循环遍历shoppingJson 数组中的每个对象。 然后你可以创建一个变量来存储总价,它会被初始化为零。 对于对象中的每个键,您可以执行另一个 forEach 迭代(因为该键的值是对象数组),并将该对象中的“price”值添加到 totalPrice 变量中。 如果你在shoppingJson 数组中的第一个对象上尝试这个,你会得到91.68。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.