Search code examples
javascriptjqueryfuelux

How can I dynamically extend an object?


This is an example of data to use for a jquery library, however my data is dymanic and not hard coded.

var tree_data = {
    'for-sale' : {name: 'For Sale', type: 'folder'} ,
    'vehicles' : {name: 'Vehicles', type: 'folder'} ,
    'rentals' : {name: 'Rentals', type: 'folder'}   ,
    'real-estate' : {name: 'Real Estate', type: 'folder'}   ,
    'pets' : {name: 'Pets', type: 'folder'} ,
    'tickets' : {name: 'Tickets', type: 'item'} ,
    'services' : {name: 'Services', type: 'item'}   ,
    'personals' : {name: 'Personals', type: 'item'}
}

So, My question is if I have this for example:

 var tree_data = {
        'for-sale' : {name: 'For Sale', type: 'folder'} ,
        'vehicles' : {name: 'Vehicles', type: 'folder'} 
}

How would I add

 rentals' : {name: 'Rentals', type: 'folder'}   ,
        'real-estate' : {name: 'Real Estate', type: 'folder'}   

To tree_data after its already created?

I also need to do this for this code, if you could possibly provide an example for both.

tree_data['for-sale']['additionalParameters'] = {
    'children' : {
        'appliances' : {name: 'Appliances', type: 'item'},
        'arts-crafts' : {name: 'Arts & Crafts', type: 'item'},
        'clothing' : {name: 'Clothing', type: 'item'},
        'computers' : {name: 'Computers', type: 'item'},
        'jewelry' : {name: 'Jewelry', type: 'item'},
        'office-business' : {name: 'Office & Business', type: 'item'},
        'sports-fitness' : {name: 'Sports & Fitness', type: 'item'}
    }
}

Solution

  • If you're using jQuery.... try using $.extend()

    http://api.jquery.com/jQuery.extend/

    Otherwise...

    var tree_data = {
            'for-sale' : {name: 'For Sale', type: 'folder'} ,
            'vehicles' : {name: 'Vehicles', type: 'folder'} 
    };
    
    tree_data['rentals'] = {name: 'Rentals', type: 'folder'}; 
    tree_data['real-estate'] = {name: 'Real Estate', type: 'folder'};