详解javascript中动态合并两个对象的属性

本篇文章给大家介绍一下javascript中动态合并两个对象属性的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

详解javascript中动态合并两个对象的属性

我们可以使用扩展操作符(…)将不同的对象合并为一个对象,这也是合并两个或多个对象最常见的操作。

这是一种合并两个对象的不可变方法,也就是说,用于合并的初始两个对象不会因为副作用而以任何方式改变。最后,我们得到了一个新对象,它由这两个对象构造而成,而它们仍然保持完整。

我们创建两个对象并合并它们:

立即学习“Java免费学习笔记(深入)”;

const person = {    name: "前端小智",    age: 24}const job = {    title: "前端开发",    location: "厦门"}const employee = {...person, ...job};console.log(employee);

登录后复制

运行结果:

{   name: '前端小智',   age: 24,   title: '前端开发',   location: '厦门' }

登录后复制

注意:如果这两个对象之间有共同的属性,例如它们都有location,则第二个对象(job)的属性将覆盖第一个对象(person)的属性:

const person = {  name: "前端小智",  location: "北京"}const job = {  title: "前端开发",  location: "厦门"}const employee = {...person, ...job};console.log(employee);

登录后复制

运行结果:

{   name: '前端小智',   location: '厦门',   title: '前端开发' }

登录后复制

如果要合并两个以上的对象,最右边的对象将覆盖左边的对象。

使用 Object.assign() 合并JavaScript对象

并两个或多个对象的另一种常用方法是使用内置的Object.assign()方法:

Object.assign(target, source1, source2, ...);

登录后复制

此方法将一个或多个源对象中的所有属性复制到目标对象中。就像扩展操作符一样,在覆盖时,将使用最右边的值:

const person = {  name: "前端小智",  location: "北京",};const job = {  title: "前端开发",  location: "厦门",};const employee = Object.assign(person, job);console.log(employee);

登录后复制

运行结果:

{   name: '前端小智',   age: 24,  location: '厦门',   title: '前端开发' }

登录后复制

同样,请记住employee引用的对象是一个全新的对象,不会链接到person或job引用的对象。

浅合并和深合并

在浅合并的情况下,如果源对象上的属性之一是另一个对象,则目标对象将包含对源对象中存在的同一对象的引用。 在这种情况下,不会创建新对象。

我们调整前面的person对象,并将location作为对象本身

const person = {    name: "John Doe",    location: {        city: "London",         country: "England"    }}const job = {    title: "Full stack developer"}const employee = {...person, ...job};console.log(employee.location === person.location);

登录后复制

运行结果:

true

登录后复制

我们可以看到person和employee对象中对location对象的引用是相同的。事实上,spread操作符(…)和Object.assign() 都是浅合并。

JavaScript没有现成的深合并支持。然而,第三方模块和库确实支持它,比如Lodash的.merge。

总结

本文中,我们演示在如何在 JS 中合并两个对象。介绍了spread操作符(…)和Object.assign()方法,它们都执行两个或多个对象的浅合并到一个新对象中,而不会影响组成部分。

原文地址:https://stackak.com/merge-properties-of-two-objects-dynamically-in-javascript/作者:Abhilash Kakumanu译文地址:https://segmentfault.com/a/1190000039833349译者:前端小智

更多编程相关知识,请访问:编程视频!!

以上就是详解javascript中动态合并两个对象的属性的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2713209.html

(0)
上一篇 2025年3月7日 21:21:16
下一篇 2025年3月7日 21:21:30

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 学会这20+个JavaScript单行代码,让你像专业人士一样编写代码

    本篇文章给大家介绍20+个javascript单行代码,可以帮助你像专业人士一样编写代码。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 JavaScript不断发展壮大, 因为它是最容易上手的语言之一,因此为市场上的新成…

    2025年3月7日 编程技术
    200
  • 浏览器如何运行javascript

    浏览器运行javascript的方法:首先打开一个网页;然后直接在网页上面右键,点击【检查】进入控制台;接着点击顶部菜单里面的Source标签;最后在新建的snippet的右边写JavaScript代码即可。 本文操作环境:Windows7…

    2025年3月7日 编程技术
    200
  • 如何使用JS.map()方法(数组方法)

    本篇文章给大家介绍一下javascript中的array.map()方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 有时,你可能需要获取一个数组并将一些操作应用于其子项,以便获得具有已修改元素的新数组。 无需使用循环…

    2025年3月7日
    200
  • javascript和java区别有什么

    区别:1、JavaScript由浏览器解释执行,Java程序则是编译执行。2、JavaScript提供丰富的内置对象供开发人员使用;Java不管开发程序简单与否,都必须设计对象。3、JavaScript是弱类型语言,Java则是强类型语言。…

    2025年3月7日
    200
  • javascript怎么删除数组元素

    删除方法:1、length属性从数组末尾删除元素,语法“数组名.length=值”;2、delete关键字删除指定元素,语法“delete 数组名[下标]”;3、splice()函数,语法“数组名.splice(开始位置, 删除数目)”。 …

    2025年3月7日
    200
  • javascript怎么删除对象的属性

    在javascript中,可以使用delete运算符来删除对象的属性,它的操作数应当是一个属性访问表达式;例“var obj={x:1};delete obj.x;”。delete运算符只能删除自由属性,不能删除继承属性。 本教程操作环境:…

    2025年3月7日
    200
  • javascript中时间怎么转时间戳

    转换方法:1、使用“Date.parse(new Date())”语句;2、使用“(new Date()).valueOf()”语句;3、使用“new Date().getTime()”;4、使用“Number(new Date())”。 …

    2025年3月7日
    200
  • javascript怎么进行类型强制转换

    强制转换方法:1、使用String()、Number()或toString()函数进行字符串与数字之间的显示类型转换;2、使用Boolean()函数将值转换为布尔值;3、使用“+”、“-”运算符进行字符串和数字之间的隐式类型转换。 本教程操…

    2025年3月7日
    200
  • javascript怎么将值转为字符串

    转换方法:1、使用“+”运算符结合空字符串,语法“值+””;2、使用模板字符串,语法“${值}”;3、使用“JSON.stringify(值)”语句;4、使用“值.toString()”语句;5、使用“String(值)”语句。…

    2025年3月7日
    200
  • JavaScript怎么实现打印操作

    在JavaScript中,可以使用Window对象的print()方法来实现打印操作,语法格式“window.print()”。print()方法用于打印当前窗口的内容;调用print()方法会产生一个打印预览弹框,让用户可以设置打印请求。…

    2025年3月7日
    200

发表回复

登录后才能评论