js 物件的合併

2022-03-20 07:40:46 字數 1461 閱讀 3955

物件的合併

需求:設有物件 o1 ,o2,需要得到物件 o3?1

23varo1 = , o2 = ;

// 則

varo3 =

方法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

67varo1 = ;

varo2 = ;

varo3 = ;

varobj = object.assign(o1, o2, o3);

console.log(obj);//

console.log(o1);// , 注意目標物件自身也會改變。

方法3:遍歷賦值法 

**邏輯:

迴圈物件n中的每乙個對應屬性。

確認物件n中存在該屬性

確認物件o中不存在該屬性?1

2345

6varextend=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...