这篇文章涵盖了使用javascript和lodash将不同值的对象组合或连接起来的不同方法。
让我们看一个两个对象的例子。每个对象都有不同的属性。
const employee= {
name: "kiran",
id:12
};
const department = {
type: "Development"
};
我们将看到结合这两个对象的各种方法
Lodash对象的赋值方法实例
这个库中的assign方法是用来将源对象的值分配给目标对象的值。它通过结合源对象和目标对象返回一个对象。语法:
_.assign(target, [sources])
参数 object是一个目标对象 source是一个源对象
const source = {
name: "kiran",
id:12
};
const department = {
type: "Development"
};
console.log(_.assign(source, department)); // returns {name: "kiran", id: 12, type: "Development"}
console.log(_.assign({id:3}, {id:5,name:"kiran"})); // returns {id: 5, name: "kiran"}
Lodash对象扩展方法的例子
extend方法也通过复制对象.属性做同样的事情。扩展方法的工作原理与Lodash中的assignIn方法相同。
console.log(_.extend({id:3}, {id:5,name:"kiran"})); // returns {id: 5, name: "kiran"}
使用merge方法合并对象
如果源对象包含子对象的属性,子对象的层次结构将被合并为目标子对象。请看下面的例子来理解
_.merge ({}, {name:{value:'value'}}, {name:{test:'testvalue'}}) // outputs {name:{value: "value", test:"testvalue"}}
使用Javascript代码合并/连接对象
我们也可以使用object.assign()或spread operator来实现两个对象的连接。 如果你不想使用lodash库,可以使用这种方式。使用lodash库的好处是它可以在旧版本的浏览器上工作。
javascript的优点是可以合并数组,而上述lodash方法对数组是不可能的。
使用object.assign()连接对象
object.assign()方法是作为ES6语言的一部分被引入到javascript中。它从源对象复制到目标对象,并返回一个新的合并对象。源对象和目标对象有不同的属性
console.log(Object.assign(source, department)); // returns {name: "kiran", id: 12, type: "Development"}
console.log(Object.assign({},source, department)); // returns {name: "kiran", id: 12, type: "Development"}
使用传播操作符合并对象
在ES6中引入了扩展运算符。三个点代表扩展运算符
语法是:
…array
变量的扩展运算符在方法参数中使用,其中方法期望有零个或多个参数。
console.log({ ...source, ...department }); // returns {name: "kiran", id: 12, type: "Development"}