溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Javascript 對象(object)合并操作實例分析

發布時間:2020-09-02 21:37:50 來源:腳本之家 閱讀:232 作者:yes_V_can 欄目:web開發

本文實例講述了Javascript 對象(object)合并操作。分享給大家供大家參考,具體如下:

對象的合并

需求:設有對象 o1 ,o2,需要得到對象 o3

var o1 = { a:'a' }, o2 = { b:'b' };
// 則
var o3 = { a:'a', b:'b' }

方法1:使用JQuery的extend方法

  •         **方法定義**:jQuery.extend([deep], target, object1, [objectN])
  •         > 用一個或多個其他對象來擴展一個對象,返回被擴展的對象。
  •         > 如果不指定target,則給jQuery命名空間本身進行擴展。這有助于插件作者為jQuery增加新方法。 如果第一個參數設置為true,則jQuery返回一個深層次的副本,遞歸地復制找到的任何對象(遞歸合并)。否則的話,副本會與原對象共享結構。 未定義的屬性將不會被復制,然而從對象的原型繼承的屬性將會被復制。
o3 = $.extend(o1, o2) // 合并 o1 和 o2, 將結果返回給 o3. 注意: 此時,o1 == o3! 即 o1 被修改
// 或
o3 = $.extend({}, o1, o2) // 合并 o1 和 o2, 將結果返回給 o3. 注意: 此時,o1 != o3! 即 o1 沒有被修改

方法2:用 Object.assign(); 網上找的例子:

var o1 = { a: 1 };
var o2 = { b: 2 };
var o3 = { c: 3 };
var obj = Object.assign(o1, o2, o3);
console.log(obj); // { a: 1, b: 2, c: 3 }
console.log(o1); // { a: 1, b: 2, c: 3 }, 注意目標對象自身也會改變。

方法3:遍歷賦值法

代碼邏輯:

  1. 循環對象n中的每一個對應屬性。
  2. 確認對象n中存在該屬性
  3. 確認對象o中不存在該屬性
var extend=function(o,n){
  for (var p in n){
    if(n.hasOwnProperty(p) && (!o.hasOwnProperty(p) ))
      o[p]=n[p];
  }
};  

類似于直接賦值增加屬性:

o3=o1;
o3['b']='b';
// o3 ={ o1:'a', o2:'b' };

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼運行效果。

更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《javascript面向對象入門教程》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結》

希望本文所述對大家JavaScript程序設計有所幫助。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女