如何从javascript中的2d数组获取价格数据?

时间:2020-01-19 06:07:46

标签: javascript arrays sum

我有json,如下所示。我想做的是计算每个用户的价格总和 在这种情况下,例如user001:91.68

我陷入困境的

我正在尝试编写for循环以从json获取这些数据,但我必须将直接usernumber(例如user001)分配给代码。 我想使用诸如shoppingJson [i] [j]之类的东西

我只有在下面写时才能得到结果

console.log(shoppingJson[0].user001[0].price)

我应该如何访问2d数组值?

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
      }
    ]}
]

2 个答案:

答案 0 :(得分:0)

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
}

答案 1 :(得分:0)

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。

相关问题