Как сложить цену в массиве на пользователя? в javascript 2д - PullRequest
0 голосов
/ 19 января 2020

Привет у меня ниже json и попробуйте получить сумму цены для каждого пользователя. например, KYLE1: 300,6, KYLE2: 1188,6. но не удалось отделить его от каждого .. пожалуйста, помогите

есть ли способ остановить для l oop между пользователями?

    var json = [
    {
    "name" : " KYLE 1",
    "addr" : " SEOUL",
    "buyproducts" : [ {
        "prodname": "prod1", "price": 100.2, "date": "2003-01-04"},{
        "prodname": "prod2", "price": 100.2, "date": "2003-06-04"},{
        "prodname": "prod3", "price": 100.2, "date": "2003-08-04"}
    ]},
    {
    "name" : " KYLE 2",
    "addr" : " SEOUL",
    "buyproducts" : [ {
        "prodname": "prod4", "price": 13.2, "date": "2003-03-04"},{
        "prodname": "prod5", "price": 633.2, "date": "2003-07-04"},{
        "prodname": "prod6", "price": 542.2, "date": "2003-01-04"}
    ]},
    {
    "name" : " KYLE 3",
    "addr" : " SEOUL",
    "buyproducts" : [ {
        "prodname": "prod1", "price": 75.2, "date": "2003-01-04"},{
        "prodname": "prod2", "price": 35.2, "date": "2004-07-04"},{
        "prodname": "prod3", "price": 52.2, "date": "2005-02-04"}
    ]}
    ]


--------------------------------


    var totalCost = function(arr){
        var array = [];
        var priceSum = 0;
        for (var i = 0; i < arr.length; i++){

            for (var j = 0; j < arr[i].buyproducts.length; j++){
                priceSum += arr[i].buyproducts[j].price;
            } array.push(priceSum)
            console.log(arr[i].name + ": " + priceSum)
        }
    }

    totalCost(json);

1 Ответ

0 голосов
/ 19 января 2020

Попробуйте это.

var json = [
  {
    name: " KYLE 1",
    addr: " SEOUL",
    buyproducts: [
      {
        prodname: "prod1",
        price: 100.2,
        date: "2003-01-04"
      },
      {
        prodname: "prod2",
        price: 100.2,
        date: "2003-06-04"
      },
      {
        prodname: "prod3",
        price: 100.2,
        date: "2003-08-04"
      }
    ]
  },
  {
    name: " KYLE 2",
    addr: " SEOUL",
    buyproducts: [
      {
        prodname: "prod4",
        price: 13.2,
        date: "2003-03-04"
      },
      {
        prodname: "prod5",
        price: 633.2,
        date: "2003-07-04"
      },
      {
        prodname: "prod6",
        price: 542.2,
        date: "2003-01-04"
      }
    ]
  },
  {
    name: " KYLE 3",
    addr: " SEOUL",
    buyproducts: [
      {
        prodname: "prod1",
        price: 75.2,
        date: "2003-01-04"
      },
      {
        prodname: "prod2",
        price: 35.2,
        date: "2004-07-04"
      },
      {
        prodname: "prod3",
        price: 52.2,
        date: "2005-02-04"
      }
    ]
  }
];

let sumArray = {};

for (const user of json) {
  sumArray[user.name] = user.buyproducts.reduce(
    (accu, value) => (accu + value.price),
    0
  );
}

console.log(sumArray);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...