Merging objects (associative arrays)

前端 未结 16 1223
野的像风
野的像风 2020-12-04 08:20

What’s the best/standard way of merging two associative arrays in JavaScript? Does everyone just do it by rolling their own for loop?

16条回答
  •  抹茶落季
    2020-12-04 09:01

    with jquery you can call $.extend

    var obj1 = {a: 1, b: 2};
    var obj2 = {a: 4, c: 110};
    
    var obj3 = $.extend(obj1, obj2); 
    
    obj1 == obj3 == {a: 4, b: 2, c: 110} // Pseudo JS
    

    (assoc. arrays are objects in js)

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


    edit: Like rymo suggested, it's better to do it this way:

    obj3 = $.extend({}, obj1, obj2); 
    obj3 == {a: 4, b: 2, c: 110}
    

    As here obj1 (and obj2) remain unchanged.


    edit2: In 2018 the way to do it is via Object.assign:

    var obj3 = Object.assign({}, obj1, obj2); 
    obj3 === {a: 4, b: 2, c: 110} // Pseudo JS
    

    If working with ES6 this can be achieved with the Spread Operator:

    const obj3 = { ...obj1, ...obj2 };
    

提交回复
热议问题