Functional programming - reduce [iterate, mutate inside and outside] - sample cases
var fs = require('fs')
var out = fs.readFileSync('src.txt', 'utf8')
.trim().split('\n')
.reduce(function (acc, cur) {
var curArr = cur.split(' ');
if (typeof acc[curArr[0]] !== 'object') {
acc[curArr[0]] = [];
}
acc[curArr[0]].push({
name: curArr[1],
price: curArr[2],
quantity: curArr[3]
})
return acc
}, {})
console.log('out', JSON.stringify(out, null, 2))