Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Javascript object transform

I want to transform this object so that I can call it that way

cars.ox, bikes.ox

var baseValue = [
    {
        '2014-12-01': {
            'cars;ox;2014-12-01':100,
            'cars;ot;2014-12-01':150,
            'bikes;ox;2014-12-01':50,
            'bikes;ot;2014-12-01':80
        },
        '2014-12-02': {
            'cars;ox;2014-12-02':100,
            'cars;ot;2014-12-02':150,
            'bikes;ox;2014-12-02':50,
            'bikes;ot;2014-12-02':80
        }
    }
]

I try do this in many ways, but at the end i completely lost all hope.

var category = []

var obj = baseValue[0]

Object.keys(obj).forEach(function(key) {
    var dane = obj[key]
    Object.keys(dane).forEach(function(key) {
        splitted = key.split(';')
        var category = splitted[0]
        var serviceName = splitted[1];
    })
})

I would be grateful if anyone help me with this

like image 920
Michał Avatar asked Apr 15 '26 08:04

Michał


1 Answers

I think you were close, you just need to create objects if they do not exist for the keys you want. Perhaps something like this.

var obj = baseValue[0]
var result = {};
Object.keys(obj).forEach(function(key) {
    var dane = obj[key]
    Object.keys(dane).forEach(function(key) {
        splitted = key.split(';')
        var category = splitted[0]
        var serviceName = splitted[1];
        if(!result[category]) {
            result[category] = {};
        }
        if(!result[category][serviceName]) {
            result[category][serviceName] = [];
        }

        result[category][serviceName].push(dane[key]);
    })
});

http://jsfiddle.net/6c5c3qwy/1/

(The result is logged to the console.)

like image 193
Wet Noodles Avatar answered Apr 17 '26 20:04

Wet Noodles



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!