📜  Lodash _.assign() 方法(1)

📅  最后修改于: 2023-12-03 15:17:25.244000             🧑  作者: Mango

Lodash _.assign() 方法介绍

Lodash 是一个 JavaScript 工具库,提供了很多实用的方法用于开发中的数据操作、函数式编程等。其中,_.assign() 方法用于将源对象的属性合并到目标对象中。即将一个或多个对象的属性复制到目标对象中。

语法
_.assign(object, [sources])

参数说明

  • object (Object): 目标对象
  • [sources] (Object): 原始对象,多个原始对象可合并到目标对象中。

返回值

  • (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() 方法的介绍,它能够方便地将多个对象中的属性合并到一个对象中,提高了开发效率。我们需要注意它的用法和注意点,能够更好地利用该方法优化我们的代码。