Skip to content Skip to sidebar Skip to footer

Convert Json Data To Another Format Using Javascript

My base data is as following.. [{ month: 'Jan', cat: A, val: 20 },{ month: 'Jan', cat: B, val: 5 },{ month: 'Jan', cat: C, val: 10 },{ month

Solution 1:

This proposal features Array#forEach with an object for the month group.

The object is created without any prototypes or properties, it is really an empty. This could be necessary if a hash has a value of a property of a not empty object.

var array = [{ month: 'Jan', cat: 'A', val: 20 }, { month: 'Jan', cat: 'B', val: 5 }, { month: 'Jan', cat: 'C', val: 10 }, { month: 'Feb', cat: 'A', val: 30 }, { month: 'Feb', cat: 'B', val: 10 }, { month: 'Feb', cat: 'C', val: 20 }],
    grouped = [];

array.forEach(function (a) {
    if (!this[a.month]) {
        this[a.month] = { month: a.month };
        grouped.push(this[a.month]);
    }
    this[a.month][a.cat] = (this[a.month][a.cat] || 0) + a.val;
}, Object.create(null));

document.write('<pre>' + JSON.stringify(grouped, 0, 4) + '</pre>');

Post a Comment for "Convert Json Data To Another Format Using Javascript"