2015-05-12 97 views
1

如果我有對象data1和data2,我怎樣才能讓data3?如何合併兩個JavaScript對象litterals

我將稍後在調用MVC服務器控制器的AJAX請求中發送data3作爲參數。 (只是說我不能讓data3成爲我認爲的數組)。

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

var data2 = { 
    computerPackageId: 3 
}; 

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

DATA3 = [Object.assign](https://開頭developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)({},data1,data2); – tsh

回答

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>');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+0

很好用。很簡單。我幾個月前沒有問過這個問題:)謝謝。 (我會在10分鐘內接受) – radbyx

1

如果你有興趣在普通的JavaScript做,

簡單地聲明像

VAR OBJ 3 =一個變種yourFunction中(OBJ1,OBJ2,OBJ3);

並在你的函數中編寫一個嵌套的for循環,它爲參數循環並循環遍歷所提供的objs中的所有道具並返回obj。

試試吧。 照顧有關空支票和其他角情況下,像檢查對象等等,使用普通的JavaScript

1

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>');