$conf, $runtime; function_exists('chdir') AND chdir(APP_PATH); $r = 'mysql' == $conf['cache']['type'] ? website_set('runtime', $runtime) : cache_set('runtime', $runtime); } function runtime_truncate() { global $conf; 'mysql' == $conf['cache']['type'] ? website_set('runtime', '') : cache_delete('runtime'); } register_shutdown_function('runtime_save'); ?>javascript - Sum properties child objects with lodash - Stack Overflow|Programmer puzzle solving
最新消息:Welcome to the puzzle paradise for programmers! Here, a well-designed puzzle awaits you. From code logic puzzles to algorithmic challenges, each level is closely centered on the programmer's expertise and skills. Whether you're a novice programmer or an experienced tech guru, you'll find your own challenges on this site. In the process of solving puzzles, you can not only exercise your thinking skills, but also deepen your understanding and application of programming knowledge. Come to start this puzzle journey full of wisdom and challenges, with many programmers to compete with each other and show your programming wisdom! Translated with DeepL.com (free version)

javascript - Sum properties child objects with lodash - Stack Overflow

matteradmin17PV0评论

I use lodash in my project. I have a JSON

 { arcade: {
    sam: {
        played: 10,
        wins: 5,
        lose: 5
      },
     adam: {
       played: 10,
       wins: 5,
       lose: 5
     },
  }

  pvp: {
    sam: {
        played: 10,
        wins: 5,
        lose: 5
      },
     adam: {
       played: 10,
       wins: 5,
       lose: 5
     },
  }
}

I would like to receive as a result of JSON

{
  arcade: {
    played: 20,
    wins: 10,
    lose: 10
  },
  pvp: {
    played: 20,
    wins: 10,
    lose: 10
  },
}

how to calculate the sum of values child objects with js/lodash? Thanks.

I use lodash in my project. I have a JSON

 { arcade: {
    sam: {
        played: 10,
        wins: 5,
        lose: 5
      },
     adam: {
       played: 10,
       wins: 5,
       lose: 5
     },
  }

  pvp: {
    sam: {
        played: 10,
        wins: 5,
        lose: 5
      },
     adam: {
       played: 10,
       wins: 5,
       lose: 5
     },
  }
}

I would like to receive as a result of JSON

{
  arcade: {
    played: 20,
    wins: 10,
    lose: 10
  },
  pvp: {
    played: 20,
    wins: 10,
    lose: 10
  },
}

how to calculate the sum of values child objects with js/lodash? Thanks.

Share Improve this question asked Jan 13, 2015 at 9:41 aleksey080aleksey080 1874 silver badges13 bronze badges 1
  • Do you know how to iterate over objects? – Ja͢ck Commented Jan 13, 2015 at 9:44
Add a ment  | 

1 Answer 1

Reset to default 2

http://jsfiddle/efmmh8ok/
I would use reduce function (lodash doc)

 _.reduce(ori, function (ori1, data1, c) {
    ori1[c] = _.reduce(data1, function (ori2, data2) {
        _.each(data2, function (value, key) {
            ori2[key] = ori2[key] || 0; // if it undefined yet put number 0 
            ori2[key] += value; // sum with the previous value
        });
        return ori2; // the populated data {played: 20, wins: 10, lose: 10}
    }, ori1[c] || {});
    return ori1; // the populated data {pvp: {played: 20, wins: 10, lose: 10}}
}, {});
Post a comment

comment list (0)

  1. No comments so far