Summing some Data
const keys = [
"one",
"two",
"three"
];
const dataToSum = [
{
device: "(none)",
age: 10,
"one": 5,
"two": 2,
"three": 6
},
{
device: "device a",
age: 3,
"one": 8,
"two": 6,
"three": 3
},
{
device: "device b",
age: 6,
"one": 4,
"two": 3,
"three": 1
},
{
device: "device c",
age: 7,
"one": 3,
"two": 4,
"three": 3
},
{
device: "device d",
age: 2,
"one": 7,
"two": 4,
"three": 6
},
{
device: "device e",
age: 4,
"one": 3,
"two": 2,
"three": 2
}
];
const sum = (data, key) => data.reduce((acc, a) => acc + a[key], 0);
const methodOne = (keys, data) => {
const output = keys.reduce(
(acc, value) => ({ ...acc, [value]: sum(data, value) }),
{}
);
return output
}
const methodTwo = (keys, data) => {
const output = keys.reduce(
(acc, value) => ({ ...acc, [value]: 0 }),
{}
);
for (const key of keys) {
output[key] = sum(data, key)
}
return output
}
const methodThree = (keys, data) => {
const output = {}
keys.forEach(key => {
output[key] = sum(data, key)
})
return output
}
const a = methodOne(keys, dataToSum)
console.log("method 1: ", a)
const b = methodTwo(keys, dataToSum)
console.log("method 2: ", b)
const c = methodThree(keys, dataToSum)
console.log("method 3: ", c)