物件的合併
需求:設有物件 o1 ,o2,需要得到物件 o3?1
23var
o1 = , o2 = ;
// 則
var
o3 =
方法1:使用jquery的extend方法
**方法定義**:jquery.extend([deep], target, object1, [objectn])
> 用乙個或多個其他物件來擴充套件乙個物件,返回被擴充套件的物件。
> 如果不指定target,則給jquery命名空間本身進行擴充套件。這有助於外掛程式作者為jquery增加新方法。 如果第乙個引數設定為true,則jquery返回乙個深層次的副本,遞迴地複製找到的任何物件(遞迴合併)。否則的話,副本會與原物件共享結構。 未定義的屬性將不會被複製,然而從物件的原型繼承的屬性將會被複製。?1
23o3 = $.extend(o1, o2)
// 合併 o1 和 o2, 將結果返回給 o3. 注意: 此時,o1 == o3! 即 o1 被修改
// 或
o3 = $.extend({}, o1, o2)
// 合併 o1 和 o2, 將結果返回給 o3. 注意: 此時,o1 != o3! 即 o1 沒有被修改
方法2:用 object.assign(); 網上找的例子: ?1
2345
67var
o1 = ;
var
o2 = ;
var
o3 = ;
var
obj = object.assign(o1, o2, o3);
console.log(obj);
//
console.log(o1);
// , 注意目標物件自身也會改變。
方法3:遍歷賦值法
**邏輯:
迴圈物件n中的每乙個對應屬性。
確認物件n中存在該屬性
確認物件o中不存在該屬性?1
2345
6var
extend=
function
(o,n)
};
類似於直接賦值增加屬性:?1
23o3=o1;
o3[
'b'
]=
'b'
;
// o3 =;
js物件的合併
專案需求 將多個物件的屬性進行合併,即最後合併為乙個object傳遞給後端。解決辦法 object.assign 方法 object.assign form,obj object.assign 目標物件,被合併的物件 注意直接拿原有乙個物件作為目標物件,合併後,原物件會被改變。例如上面的 form ...
js 合併物件
物件的合併 需求 設有物件 o1 o2,需要得到物件 o3 var o1 o2 則 var o3 方法1 使用jquery的extend方法 方法定義 jquery.extend deep target,object1,objectn 用乙個或多個其他物件來擴充套件乙個物件,返回被擴充套件的物件。如...
js合併物件和js合併陣列
object.assign target,將所有可列舉屬性的值從乙個或多個源物件複製到目標物件 assign target t,source1 u,source2 v t u v let target 目的 要將a,b,c物件複製到target物件中 let a let b let c let ob...