JavaScript 對象合并的幾種方法小結
JavaScript 中有多種方法可以合并對象。
1、使用 Object.assign() 方法
它可以將一個或多個對象的屬性復制到目標對象中。例如:
const obj1 = { a: 1, b: 2 };
const obj2 = { b: 3, c: 4 };
const obj3 = Object.assign({}, obj1, obj2);
console.log(obj3); // { a: 1, b: 3, c: 4 }
這里我們使用空對象({})作為第一個參數(shù),避免直接修改第一個對象。
2、使用解構賦值語法
這種方法會在合并對象時保留鍵值相同的對象的屬性,例如:
const obj1 = { a: 1, b: 2 };
const obj2 = { b: 3, c: 4 };
const obj3 = { ...obj1, ...obj2 };
console.log(obj3); // { a: 1, b: 3, c: 4 }
這里使用了擴展運算符,可以將一個對象的屬性解構到另一個對象中。
3、使用 Lodash 中的 merge() 方法
const obj1 = { a: 1, b: 2 };
const obj2 = { b: 3, c: 4 };
const obj3 = _.merge(obj1, obj2);
console.log(obj3); // { a: 1, b: 3, c: 4 }
4、for-in 循環(huán) + 手動賦值
const obj1 = { a: 1, b: 2 };
const obj2 = { b: 3, c: 4 };
const obj3 = {};
for (const key in obj1) {
obj3[key] = obj1[key];
}
for (const key in obj2) {
obj3[key] = obj2[key];
}
console.log(obj3); // { a: 1, b: 3, c: 4 }
5、使用 Object.keys() 和 Array.forEach() 方法
const obj1 = { a: 1, b: 2 };
const obj2 = { b: 3, c: 4 };
const obj3 = {};
Object.keys(obj1).forEach(key => {
obj3[key] = obj1[key];
});
Object.keys(obj2).forEach(key => {
obj3[key] = obj2[key];
});
console.log(obj3); // { a: 1, b: 3, c: 4 }
最后需要提醒的是,在合并對象時如果鍵值相同的對象屬性類型不同,例如一個為字符串類型,一個為數(shù)值類型,會覆蓋之前的屬性,因此需要根據(jù)項目需求做出相應的處理。
此外,如果需要對合并對象的屬性進行特殊處理,例如合并對象的屬性值是一個數(shù)組,需要合并成一個新數(shù)組,可以使用 Array.concat() 方法。
const obj1 = { a: [1, 2] };
const obj2 = { a: [3, 4] };
const obj3 = Object.assign({}, obj1, {
a: obj1.a.concat(obj2.a)
});
console.log(obj3); // { a: [1, 2, 3, 4] }
或者使用擴展運算符
const obj1 = { a: [1, 2] };
const obj2 = { a: [3, 4] };
const obj3 = {...obj1, a: [...obj1.a, ...obj2.a]}
console.log(obj3); // { a: [1, 2, 3, 4] }
此外,如果需要對合并對象的屬性值進行進一步的處理,如去重、排序等,可以使用 Array.filter()、Array.sort() 等方法。
到此這篇關于JavaScript 對象合并的幾種方法小結的文章就介紹到這了,更多相關JavaScript 對象合并內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
JS獲取經(jīng)緯度并根據(jù)經(jīng)緯度得到城市信息簡單示例
前端時間剛好使用了百度地圖的js api定位獲取用戶當前經(jīng)緯度并獲取當前詳細位置的功能,為了方便下次找起來方便一些自己在這里記錄一下,這篇文章主要給大家介紹了關于JS獲取經(jīng)緯度并根據(jù)經(jīng)緯度得到城市信息的相關資料,需要的朋友可以參考下2023-11-11
javascript轉換字符串為dom對象(字符串動態(tài)創(chuàng)建dom)
那么今天的目的就是教大家怎么去實現(xiàn)一個這樣的方法用來把字符串直接轉換為標準的dom對象2010-05-05

