首页 » 网站建设 » phpobject归并技巧_若何运用 JS 动态合并两个对象的属性

phpobject归并技巧_若何运用 JS 动态合并两个对象的属性

访客 2024-12-15 0

扫一扫用手机浏览

文章目录 [+]

这是一种合并两个工具的不可变方法,也便是说,用于合并的初始两个工具不会由于副浸染而以任何办法改变。
末了,我们得到了一个新工具,它由这两个工具布局而成,而它们仍旧保持完全。

我们创建两个工具并合并它们:

phpobject归并技巧_若何运用 JS 动态合并两个对象的属性

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

运行结果:

phpobject归并技巧_若何运用 JS 动态合并两个对象的属性
(图片来自网络侵删)

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

把稳:如果这两个工具之间有共同的属性,例如它们都有location,则第二个工具(job)的属性将覆盖第一个工具(person)的属性:

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

运行结果:

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

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

利用 Object.assign() 合并JavaScript工具

并两个或多个工具的另一种常用方法是利用内置的Object.assign()方法:

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

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

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

运行结果:

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

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

浅合并和深合并

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

我们调度前面的person工具,并将location作为工具本身

constperson={name:"JohnDoe",location:{city:"London",country:"England"}}constjob={title:"Fullstackdeveloper"}constemployee={...person,...job};console.log(employee.location===person.location);

运行结果:

true

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

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

总结

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

~完,我是刷碗智,我要去刷碗了,我们下期见!

标签:

相关文章

大数据赋能,水库管理的智慧升级之路

随着我国经济的快速发展和科技的不断进步,大数据技术已逐渐渗透到各行各业,为各行各业的发展注入了新的活力。水库作为我国水资源的重要组...

网站建设 2024-12-16 阅读0 评论0

大数据赋能丰宁,智慧农业的探索与方法

近年来,我国大数据产业发展迅速,已成为国家战略新兴产业。在农业领域,大数据的应用越来越广泛,为农业现代化提供了有力支撑。丰宁作为我...

网站建设 2024-12-16 阅读0 评论0