如何合并两个JavaScript Object litterals

时间:2015-05-12 06:01:15

标签: javascript jquery json asp.net-mvc

如果我有对象data1和data2,我该如何制作data3?

我稍后会在调用MVC Server控制器的AJAX请求中将data3作为参数发送。 (只是说我不能将数据3作为一个阵列)。

var data1 = {
    managementPointId: 1,
    businessUnitId: 2
};

var data2 = {
    computerPackageId: 3
};

var data3 = {
    managementPointId: 1,
    businessUnitId: 2,
    computerPackageId: 3
};

3 个答案:

答案 0 :(得分:5)

使用$.extend方法:



var data1 = {
    managementPointId: 1,
    businessUnitId: 2
};

var data2 = {
    computerPackageId: 3
};

var data3 = $.extend({}, data1, data2);

document.write('<pre>' + JSON.stringify(data3, null, 4) + '</pre>');
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

如果您有兴趣使用普通的javascript,

只需声明类似

的var

var obj3 = yourfunction(obj1,obj2,obj3);

并在你的函数中编写一个嵌套的for循环,循环参数并循环遍历提供的objs中的所有道具并返回obj。

试试吧。 注意空检查和其他角落情况,如对象检查等......,

答案 2 :(得分:1)

使用纯JavaScript:

&#13;
&#13;
function extend(a, b){
    for(var key in b)
        if(b.hasOwnProperty(key))
            a[key] = b[key];
    return a;
}


var data1 = {
    managementPointId: 1,
    businessUnitId: 2
};

var data2 = {
    computerPackageId: 3
};
var data3 = extend(data1, data2);


document.write('<pre>' + JSON.stringify(data3, null, 4) + '</pre>');
   
&#13;
&#13;
&#13;