📅  最后修改于: 2023-12-03 15:17:25.244000             🧑  作者: Mango
Lodash 是一个 JavaScript 工具库,提供了很多实用的方法用于开发中的数据操作、函数式编程等。其中,_.assign()
方法用于将源对象的属性合并到目标对象中。即将一个或多个对象的属性复制到目标对象中。
_.assign(object, [sources])
参数说明:
object
(Object): 目标对象[sources]
(Object): 原始对象,多个原始对象可合并到目标对象中。返回值:
let obj1 = {a: 0, b: 1, c: 2};
let obj2 = {d: 3, e: 4};
let obj3 = {f: 5};
_.assign(obj1, obj2, obj3);
console.log(obj1);// {a: 0, b: 1, c: 2, d: 3, e: 4, f: 5}
_.assign()
方法将后面的源对象的属性值拷贝到目标对象中。如果目标对象中存在相同的属性时,后面的属性会覆盖原来的属性。如果有多个源对象,则后面的源对象会覆盖前面的源对象的同名属性。
let obj1 = {a: 0, b: 1, c: 2};
let obj2 = {b: 3, c: 4};
let obj3 = {c: 5, d: 6};
_.assign(obj1, obj2, obj3);
console.log(obj1);// { a: 0, b: 3, c: 5, d: 6}
如果目标对象或源对象是空对象,它们将不会收到任何影响。如果源对象为 null 或 undefined,则不会执行任何操作。
let obj1 = {a: 0, b: 1, c: 2};
let obj2 = null;
_.assign(obj1, obj2);
console.log(obj1);// { a: 0, b: 1, c: 2 }
与原生的Object.assign()函数不同,Lodash的_.assign()
方法可以支持深度复制(深层次合并)。需要使用到_.merge()
方法或_.cloneDeep()
方法。
let obj1 = {a: 0, b: {c: 1}};
let obj2 = {d: 2, e: {f: 3}};
let obj3 = {g: 4};
_.merge(obj1, obj2, obj3);
console.log(obj1);// { a: 0, b: { c: 1 }, d: 2, e: { f: 3 }, g: 4 }
以上就是关于 Lodash _.assign() 方法的介绍,它能够方便地将多个对象中的属性合并到一个对象中,提高了开发效率。我们需要注意它的用法和注意点,能够更好地利用该方法优化我们的代码。