最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript中合并Object的三種基本方法小結

 更新時間:2023年08月29日 08:34:23   作者:編程三昧  
在開發(fā)過程中,我們經(jīng)常會遇到合并對象的需求,今天我們就來了解一下合并對象的幾種基本方法,文中通過代碼示例介紹的非常詳細,感興趣的小伙伴跟著小編一起來看看吧

在開發(fā)過程中,我們經(jīng)常會遇到合并對象的需求,今天我們就來了解一下合并對象的幾種基本方法。

Object.assign()

Object.assign() 方法可以將一個或多個源對象的屬性復制到目標對象中。如果源對象有自己的屬性,那么它們的值將被保留。

const o1 = { a: 1, b: 1, c: 1 };
const o2 = { b: 2, c: 2 };
const o3 = { c: 3 };
const obj = Object.assign({}, o1, o2, o3);
console.log(obj); // { a: 1, b: 2, c: 3 }

Object.assign() 是淺拷貝,如果源對象中有值的引用,合并后在目標對象中修改值引用,同時會修改源對象的值引用。

const o1 = { a: 1 };
const o2 = { b: {
    name: "b"
} };
const obj = Object.assign({}, o1, o2);
obj.b.name = "new_b";
console.log(o2.b); // {name: 'new_b'}

解構賦值

使用解構賦值可以將對象的屬性復制到一個新的對象中。

const o1 = { a: 1, b: 1, c: 1 };
const o2 = { b: 2, c: 2 };
const obj = { ...o1, ...o2 };
console.log(obj); // {a: 1, b: 2, c: 2}

可以看出,使用結構賦值合并對象時,后面對象的屬性值會覆蓋前面已有屬性值。

使用遞歸方法

我們可以通過遞歸的方法將對象中的嵌套對象合并到一個新的對象中。

/** @format */
function mergeObjects(obj1, obj2) {
    const mergedObj = Object.assign({}, obj1, obj2);
    // 遞歸處理嵌套對象
    Object.keys(mergedObj).forEach((key) => {
        if (typeof mergedObj[key] === "object" && obj1[key] && obj2[key]) {
            mergedObj[key] = mergeObjects(obj1[key], obj2[key]);
        }
    });
    return mergedObj;
}
const obj1 = { a: 1, b: { c: 2, d: 3, e: { name: "e" } } };
const obj2 = { a: 2, b: { c: 3, d: 4, e: { age: 18 } } };
const mergedObj = mergeObjects(obj1, obj2);
console.log(mergedObj);
// {a:2,b:{c:3,d:4,e:{name:e,age:18}}}

總結

以上介紹的是合并對象的三種基本操作,它們也只是簡化了合并對象的步驟,在具體使用的時候,需要根據(jù)場景判斷哪種最合適。

到此這篇關于JavaScript中合并Object的基本方法小結的文章就介紹到這了,更多相關JavaScript Object合并內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 利用JS定時器實現(xiàn)元素移動

    利用JS定時器實現(xiàn)元素移動

    這篇文章主要為大家詳細介紹了利用JS定時器實現(xiàn)元素移動,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • Js圖片點擊切換輪播實現(xiàn)代碼

    Js圖片點擊切換輪播實現(xiàn)代碼

    這篇文章主要介紹了Js圖片點擊切換輪播實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • popdiv

    popdiv

    popdiv...
    2006-07-07
  • QuaggaJS用法及功能介紹

    QuaggaJS用法及功能介紹

    QuaggaJS是一個功能強大的條形碼識別庫,適合需要在瀏覽器中實現(xiàn)條形碼和二維碼掃描功能的應用場景,尤其是需要支持多種條形碼格式的情況,本文給大家介紹QuaggaJS用法,感興趣的朋友一起看看吧
    2025-06-06
  • js自定義Tab選項卡效果

    js自定義Tab選項卡效果

    這篇文章主要為大家詳細介紹了js自定義Tab選項卡效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • JavaScript報錯:Uncaught ReferenceError: XYZ is not defined的解決方法

    JavaScript報錯:Uncaught ReferenceError: XYZ is&

    在 JavaScript 編程中,“Uncaught ReferenceError: XYZ is not defined” 是一種常見的錯誤,這種錯誤通常發(fā)生在試圖使用一個未聲明的變量或標識符時,故本文給大家介紹了JavaScript報錯:Uncaught ReferenceError: XYZ is not defined的解決方法,需要的朋友可以參考下
    2024-07-07
  • JS禁止瀏覽器右鍵查看元素或按F12審查元素自動關閉頁面示例代碼

    JS禁止瀏覽器右鍵查看元素或按F12審查元素自動關閉頁面示例代碼

    這篇文章主要給大家介紹了關于利用Javascript如何禁止瀏覽器右鍵查看元素,或者通過按F12審查元素,觸犯這兩個條件會自動并關閉頁面的相關資料,通過設置這個可以防止別人扒下自己的網(wǎng)頁,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-09-09
  • JavaScript中Textarea滾動條不能拖動的解決方法

    JavaScript中Textarea滾動條不能拖動的解決方法

    這篇文章主要介紹了JavaScript中Textarea滾動條不能拖動的解決方法,主要針對IE瀏覽器中Textarea滾動條綁定了onfocus事件時分析對應的處理方法,需要的朋友可以參考下
    2015-12-12
  • 關于js布爾型、null和undefined以及類型檢測舉例詳解

    關于js布爾型、null和undefined以及類型檢測舉例詳解

    這篇文章主要介紹了關于js布爾型、null和undefined以及類型檢測的相關資料,涵蓋隱式轉(zhuǎn)換、相等比較及常用檢測技巧,幫助避免開發(fā)中的常見錯誤,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-05-05
  • 分享一個原生的JavaScript拖動方法

    分享一個原生的JavaScript拖動方法

    本文給大家分享的是基于JavaScript的setCapture方法實現(xiàn)的拖動效果,非常的簡單實用,有需要的小伙伴可以參考下
    2016-09-09

最新評論

罗田县| 青阳县| 汝阳县| 汝城县| 德安县| 昌平区| 沙坪坝区| 大足县| 应用必备| 长丰县| 蒲城县| 诸城市| 阿克陶县| 阳春市| 吉木乃县| 勃利县| 奎屯市| 清河县| 元谋县| 措美县| 历史| 南安市| 罗定市| 浦北县| 日土县| 郑州市| 汶川县| 灵川县| 南阳市| 利川市| 铜山县| 山阴县| 资兴市| 乌苏市| 凌源市| 洪江市| 略阳县| 宜州市| 淮南市| 濮阳县| 扎赉特旗|