欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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合并內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論