From 725e1d1445ce7ba5e1a56ef6a374c12ff464a335 Mon Sep 17 00:00:00 2001 From: Matt Date: Tue, 7 Aug 2018 10:14:53 +1000 Subject: [PATCH] sum values in array of objects --- javascript/reduce.js | 8 +++++++- javascript/reduce.test.js | 5 +++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/javascript/reduce.js b/javascript/reduce.js index 1edf9d0..4b4d627 100644 --- a/javascript/reduce.js +++ b/javascript/reduce.js @@ -1,5 +1,11 @@ -module.exports.sum = (arr) => { +module.exports.sum = arr => { return arr.reduce((accumulator, currentValue) => { return accumulator + currentValue }, 0) +} + +module.exports.sumObj = arr => { + return arr.reduce((accumulator, currentValue) => { + return accumulator + Object.values(currentValue)[0] + }, 0) } \ No newline at end of file diff --git a/javascript/reduce.test.js b/javascript/reduce.test.js index 0ed159f..e58865d 100644 --- a/javascript/reduce.test.js +++ b/javascript/reduce.test.js @@ -3,4 +3,9 @@ const reduce = require('./reduce') test('sum array values', () => { expect(reduce.sum([1,2,3])).toBe(6) expect(reduce.sum([])).toBe(0) +}) + +test('sum object array', () => { + expect(reduce.sumObj([{x:1}, {y:2}, {z:3}])).toBe(6) + expect(reduce.sumObj([])).toBe(0) }) \ No newline at end of file