javaScript合并对象的多种方式及知识扩展

 更新时间:2023年02月14日 11:31:14   作者:猿小张  
众所周知JavaScript中有多种方法可以合并对象,下面这篇文章主要给大家介绍了关于javaScript合并对象的多种方式及知识扩展,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

1、方式一:Object.assign(obj1, obj2, …)

参数1:obj1 是目标对象
参数2:obj2 是源对象

注意:对象与对象之间,同名属性,会被后面对象的属性值所覆盖

const obj1 = {
	a: 1,
	b: 2,
}
const obj2 = {
	b: 3,
	c: 4,
}
const result = Object.assign(obj1, obj2)
console.log(result) // {a: 1, b: 3, c: 4}

2、方式二:es6 新增语法,扩展运算符 … 【三点】

{…obj1, …obj2}
注意:对象与对象之间,同名属性,会被后面对象的属性值所覆盖

const obj1 = {
	a: 1,
	b: 2,
}
const obj2 = {
	b: 3,
	c: 4,
}
const result = {...obj1, ...obj2}  // 返回一个新的对象。
console.log(result) // {a: 1, b: 3, c: 4}

// 顺带一提, 数组之间的合并,也可以使用 扩展运算符 .
// 如: [...arr1, ...arr2]

知识扩展:

扩展运算符 … 【三点】,也可以用于 数组与数组之间的合并。

不同的是:
数组之间 只会合并,就算是相同的值,也不会覆盖。(这是不同于对象的地方。)

let arr1 = [1,2,4]
let arr2 = [4,5,6]
let arr3 = [...arr1, ...arr2]
console.log(arr3)  // [1, 2, 4, 4, 5, 6]  

最后需要提醒的是,在合并对象时如果键值相同的对象属性类型不同,例如一个为字符串类型,一个为数值类型,会覆盖之前的属性,因此需要根据项目需求做出相应的处理。

此外,如果需要对合并对象的属性进行特殊处理,例如合并对象的属性值是一个数组,需要合并成一个新数组,可以使用 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合并对象的多种方式及知识扩展的文章就介绍到这了,更多相关js合并对象方式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JS实现的杨辉三角【帕斯卡三角形】算法示例

    JS实现的杨辉三角【帕斯卡三角形】算法示例

    这篇文章主要介绍了JS实现的杨辉三角【帕斯卡三角形】算法,结合实例形式分析了杨辉三角的原理及javascript实现杨辉三角的相关操作技巧,需要的朋友可以参考下
    2019-02-02
  • ES6   Promise基础用法(resolve、reject、then、catch,all)

    ES6   Promise基础用法(resolve、reject、then、catch,a

    Promise是JavaScript中处理异步操作的对象,它有三种状态:Pending、Fulfilled、Rejected,使用new Promise创建Promise对象,通过resolve和reject改变状态,then和catch方法用于处理成功和失败的结果,本文介绍ES6 Promise用法,感兴趣的朋友一起看看吧
    2024-09-09
  • Javascript实现一朵从含苞到绽放的玫瑰

    Javascript实现一朵从含苞到绽放的玫瑰

    今天小编就为大家分享一篇关于Javascript实现一朵从含苞到绽放的玫瑰,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • 微信小程序如何实现五星评价功能

    微信小程序如何实现五星评价功能

    这篇文章主要介绍了微信小程序如何实现五星评价功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • layer弹出层的关闭问题详解之在执行完毕后关闭当前弹出层

    layer弹出层的关闭问题详解之在执行完毕后关闭当前弹出层

    在前端页面中用layer打开窗口供用户输入或选择是非常常见的用法,但是有时为了完成一次操作,需要弹出多个窗口进行选择、输入或者提示,因此在关闭窗口的时候需要实现指定关闭任意窗口,需要的朋友可以参考下
    2023-10-10
  • 如何轻松在JavaScript中字符串的字符之间添加空格

    如何轻松在JavaScript中字符串的字符之间添加空格

    在前端开发的过程中,我们经常会遇到需要对于输入的字符串进行格式化处理,下面这篇文章主要给大家介绍了关于如何轻松在JavaScript中字符串的字符之间添加空格的相关资料,需要的朋友可以参考下
    2023-03-03
  • JavaScript实现给定时间相加天数的方法

    JavaScript实现给定时间相加天数的方法

    这篇文章主要介绍了JavaScript实现给定时间相加天数的方法,涉及JavaScript针对日期与时间操作相关技巧,需要的朋友可以参考下
    2016-01-01
  • JavaScript实现一个带AI的井字棋游戏源码

    JavaScript实现一个带AI的井字棋游戏源码

    这篇文章主要介绍了基于JavaScript实现一个带AI的井字棋游戏源码,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-05-05
  • JS判断当前是否平板安卓并是否支持cordova方法的示例代码

    JS判断当前是否平板安卓并是否支持cordova方法的示例代码

    这篇文章主要介绍了JS判断当前是否平板安卓并是否支持cordova方法,pc和安卓平板共用一套代码,平板的代码用了cordova做了一个壳子嵌套如果用了cordova就不支持elementUI中的上传功能,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • javascript将DOM节点添加到文档的方法实例分析

    javascript将DOM节点添加到文档的方法实例分析

    这篇文章主要介绍了javascript将DOM节点添加到文档的方法,对比分析了javascript的两种节点创建的方法,涉及javascript节点操作及运行时间计算的相关技巧,需要的朋友可以参考下
    2015-08-08

最新评论