爱是动词还是名词Lodash中数组和对象合并⽅法assign、merge、defaults、default。。。
例⼦
_.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的关系。只不过参数顺序是相反的。