Lodash中数组和对象合并⽅法assign、merge、defaults、default。。。
lodash有哪些方法例⼦
_.assign(object, [sources])
分配来源对象的可枚举属性到⽬标对象上。 来源对象的应⽤规则是从左到右,随后的下⼀个对象的属性会覆盖上⼀个对象的属性。
_.merge(object, [sources])
该⽅法类似 _.assign, 除了它递归合并 sources 来源对象⾃⾝和继承的可枚举属性到 object ⽬标对象。如果⽬标值存在,被解析为undefined的sources 来源对象属性将被跳过。数组和普通对象会递归合并,其他对象和值会被直接分配覆盖。源对象从从左到右分配。后续的来源对象属性会覆盖之前分配的属性。
_.defaults(object, [sources])
分配来源对象的可枚举属性到⽬标对象所有解析为 undefined 的属性上。 来源对象从左到右应⽤。 ⼀旦设置了相同属性的值,后续的将被忽略掉。
_.defaultsDeep(object, [sources])
这个⽅法类似 _.defaults,除了它会递归分配默认属性。
总结
assign:后⾯的会覆盖前⾯的对象属性,不会递归遍历。
merge: 后⾯的会覆盖前⾯的对象属性,会递归遍历。
defaults:前⾯的属性不为undefined且与后⾯属性名相同,后⾯的对象属性会被忽略,不会递归遍历。defaultsDeep: 前⾯的属性不为undefined且与后⾯属性名相同,后⾯的对象属性会被忽略,会递归遍历。
assign和merge的关系就相当于defaults和defaultsDeep的关系。只不过参数顺序是相反的。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。