Object.assign()

文章介绍了JavaScript的Object.assign方法,用于合并对象。它将源对象的属性复制到目标对象中,返回修改后的目标对象。示例展示了如何向数组中的每个对象添加键值对,以及如何合并两个对象。同时,文章提到了Object.assign不支持深拷贝,对于基本类型的值会被转换为对象处理,并给出了相关示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Object.assign(target,sources)

target : 目标对象,接收源对象属性的对象,也是修改后的返回值

sources :源对象,包含被合并的属性

往集合中的每个对象里添加一个键值对

let obj=[{name:"喜羊羊"},{name:"美羊羊"},{name:"懒羊羊"}]
obj.forEach((item,index)=>{
    Object.assign(item,{from:"羊羊村"})
})
console.log(obj) 
// [{name: '喜羊羊', from: '羊羊村'},{name: '美羊羊', from: '羊羊村'},{name: '懒羊羊', from: '羊羊村'}]

合并对象

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

深拷贝 :需要使用其他方法,因为Object.assign()只复制属性值

let obj1 = {a:1,b:{c:2}}
let obj = JSON.parse(JSON.stringify(Object.assign(obj1)))
obj1.a = 4
obj1.b.c = 4
console.log(obj1)  // {a:4,b:{c:4}}
console.log(obj)   // {a:1,b:{c:2}}

基本类型会被包装为对象

let v1 = '哈哈哈'
let v2 = 11
let v3 = true
let obj = Object.assign({},v1)
console.log(obj)  // {0: '哈', 1: '哈', 2: '哈'}

let obj2 = Object.assign({},v2,v3,null,undefined)
console.log(obj2)  // {}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值