目录
-
Object.assign();
Object.assign
方法用于对象的合并,将源对象(source)的所有可枚举属性,复制到目标对象(target)。
语法:
Object.assign(target, ...sources)
Object.assign方法的第一个参数是目标对象,后面的参数都是源对象。
注意,如果目标对象与源对象有同名属性,或多个源对象有同名属性,则后面的属性会覆盖前面的属性。
let target = { a: 1, b: 1 };
let source_a = { b: 2, c: 2 };
let source_b = { c: 3 };
Object.assign(target, source_a, source_b );
console.log(target) // {a:1, b:2, c:3}
注意:Object.assign方法实行的是浅拷贝,而不是深拷贝。第一级属性深拷贝,以后级别属性浅拷贝
例如:
let source = {a: {name: '123'}}
let target = Object.assign({}, source )
target.a.name = 'abc'
console.log(source ) //{a: {name: 'abc'}}
console.log(target ) //{a: {name: 'abc'}}
let a ={val: {name: '123'}}
let b = Object.assign({}, a)
b.val= 'abc'
console.log(a) //{val: {name: '123'}}
console.log(b) //{val:'abc'}
参考文章:
https://blog.csdn.net/qq_30100043/article/details/53422657
-
Object.entries();
Object.entries()
方法返回一个给定对象自身可枚举属性的键值对数组
语法:Object.entries(obj)
const obj = { foo: 'bar', baz: 'abc' };
console.log(Object.entries(obj)); // [['foo', 'bar'], ['baz', 'abc']]
用各种循环就可以取到对应的key value 值
for (let [key, value] of Object.entries(params)) {
console.log(key,value)
}
对应的方法还有