簡體   English   中英

如何從javascript中的二維數組獲取價格數據?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM