您的位置:首页 > 科技 > IT业 > javascript:合并两个对象

javascript:合并两个对象

2025/2/24 4:41:19 来源:https://blog.csdn.net/u013938578/article/details/141557817  浏览:    关键词:javascript:合并两个对象

1 使用 Object.assign()

Object.assign() 方法可以用来合并一个或多个对象到目标对象中。它的第一个参数是目标对象,后面的参数都是源对象。

		<script>window.onload = function () {const obj1 = { a: 1, b: 2 };const obj2 = { b: 3, c: 4 };const mergedObj = Object.assign({}, obj1, obj2);console.log(mergedObj); }</script>

输出结果为: { a: 1, b: 3, c: 4 },如下图:

注意:如果目标对象和源对象有相同的键,那么源对象的键值会覆盖目标对象的键值。

2 使用扩展运算符 (...)

ES6 引入了扩展运算符,它可以用来复制可枚举的属性到新的对象中。

		<script>window.onload = function () {const obj1 = { a: 1, b: 2 };const obj2 = { b: 3, c: 4 };const mergedObj = { ...obj1, ...obj2 };console.log(mergedObj)}</script>

结果如下:

3 使用 Object.assign() 和扩展运算符组合

如果你想要合并的对象中有方法或者需要保持原有对象不变,你可以使用 Object.assign() 和扩展运算符的组合:

		<script>window.onload = function () {const obj1 = { a: 1, b: 2, method: function() { console.log('method from obj1'); } };const obj2 = { b: 3, c: 4, method: function() { console.log('method from obj2'); } };// 使用 Object.assign 来合并方法const mergedObj = Object.assign({}, obj1, obj2, { ...obj1, ...obj2 });console.log(mergedObj); // 输出: { a: 1, b: 3, c: 4, method: [Function (anonymous)] }// 或者使用扩展运算符const mergedObj2 = { ...obj1, ...obj2, ...obj1 };console.log(mergedObj2); // 输出: { a: 1, b: 2, c: 4, method: [Function (anonymous)] }}</script>

结果如下:

4 注意事项

  • 如果对象中有相同的键,那么后一个对象的值会覆盖前一个对象的值。
  • 使用 Object.assign() 和扩展运算符时,默认只会浅拷贝第一层属性。如果对象包含嵌套的对象,你需要进行深拷贝。
  • 如果你希望进行深拷贝,可以考虑使用第三方库如 lodash 的 _.merge() 方法。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com