lodash 常用总结

lodash 常用总结merge 合并源对象的属性到目标对象中 merge object sources merge 遇到相同属性的时候 如果属性值为纯对象 plainobject 或者集合 collection 时 不是用后面的属性值去覆盖前面的属性值 而是会把前后两个属性值合并 如果源对象的属性值为 undefined 则会忽略该属性 merge a 1 b

_.merge 合并源对象的属性到目标对象中

merge(object, [sources])

 merge 遇到相同属性的时候,如果属性值为纯对象(plain object)或者集合(collection)时,不是用后面的属性值去覆盖前面的属性值,而是会把前后两个属性值合并。
如果源对象的属性值为 undefined,则会忽略该属性。

merge({},{ a: 1 },{ b: { c: 2, d: 3} },{ b: { e: 4 } })

//结果

{ a: 1, b: { c: 2, d: 3, e: 4 } }

————————————————

/ 合并集合

var users = {

‘data’: [{ ‘user’: ‘barney’ }, { ‘user’: ‘fred’ }]

};

var ages = {

‘data’: [{ ‘age’: 36 }, { ‘age’: 40 }]

};

merge({}, users, ages)

// { data: [ { user: ‘barney’, age: 36 }, { user: ‘fred’, age: 40 } ] }

// merge 函数会修改原来的对象!

merge(users, ages)

console.log(users) // { data: [ { user: ‘barney’, age: 36 }, { user: ‘fred’, age: 40 } ]

 

assign 、extend、merge 

相同之处

  • 都可以用来合并对象
  • 都会修改原来的对象 (如果原来的对象是作为函数的第一个参数的话)

不同之处

  • assign 函数不会处理原型链上的属性,也不会合并相同的属性,而是用后面的属性值覆盖前面的属性值
  • extend
    • 3.x 版本中和 assign 一样
    • 4.x 版本中会合并原型链上的属性
  • merge 遇到相同属性名的时候,如果属性值是纯对象或集合的时候,会合并属性值

 

_.uniqueId

生成唯一的Id,参数[ prefix=” ]是可选的,可在ID前面添加前缀。

_.uniqueId(‘count_’)

//’count_104′

_.uniqueId()// =>’105′

 

_.uniqBy 从数组中删除重复项
[ { url: 'www.example.com/hello', id: "22" }, { url: 'www.example.com/hello', id: "22" }, { url: 'www.example.com/hello-how-are-you', id: "23" }, { url: 'www.example.com/i-like-cats', id: "24" }, { url: 'www.example.com/i-like-pie', id: "25" } ]
_.uniqBy(data, 'id');

假设数据应该是唯一的,id并且数据存储在data变量中,那么可以使用uniq()函数,如下所示:

_.uniq(data, function (e) { return e.id; }); 

或者直接这样:

_.uniq(data, 'id');
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232905.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Eclipse乱码问题最全解决方案「建议收藏」

    Eclipse乱码问题最全解决方案「建议收藏」Windows>>Pereferences>>General>Editors>>Spelling>>Encoding选项下选择other,然后输入”UTF-8″随workspace编码改变,可以一个个选项设置,也可以直接设置workspace,但有的也默认是iso8859-1,仅仅设置workspace还不能解决问题将别人的项目或JAVA文件导入到自己的Eclipse中时,常常会出现JAVA文件的中文注释变成乱码的情况,主要原因就是别人的I…

    2022年5月26日
    36
  • idea和eclipse哪个区别_第一责任和主要责任的区别

    idea和eclipse哪个区别_第一责任和主要责任的区别IDEA中“newProject”就eclipse的“workspace”,而“newModule”才是创建一个工程,这是要注意的一点。IDEA不会自动编译和加载CLASS,ECLIPSE是自动的,IDEA可以通过ModeEclipse插件来实现自动加载和编辑ClassIDEA编辑的文件是自动保存的,不能设置为手动保存,这个和Eclipse差别最大,很多人

    2022年8月29日
    4
  • 回文数的判断(三种方法)

    回文数的判断(三种方法)最近做了一点关于回文数的总结 首先先写一篇关于回文数判断的几种方法 回文数的概念 即是给定一个数 这个数顺读和逆读都是一样的 例如 121 1221 是回文数 123 1231 不是回文数 方法一 试用情境 处理小数字 使用数学方法 输入的回文数 x 的范围为 x lt 10 9 int 存储 或者 x lt 10 18 longlong 存储的数 数字的范围不大 这里写的是 int 存储情况

    2025年8月21日
    4
  • dw中css制作导航,Dreamweaver导航条按钮制作方法

    dw中css制作导航,Dreamweaver导航条按钮制作方法核心提示:教你Dreamweaver用表格巧妙制作导航条按钮看到上面的导航条了吗?你可以点击一下看看它的效果,请注意,这可是用表格做出来的,你相信吗?其实代码很简单,现在让我们来看看该怎么做。1.首先创建一个1×6的表格,参数为:border=0cellspacing=3cellpadding=0;2.在这个表格的每个单元格内分别插入一个表格,宽度和高度设为100%;3.建立一个CSS样式.u…

    2022年7月22日
    13
  • docker 使用 记录

    docker 使用 记录

    2022年2月19日
    52
  • netstat命令输出结果分析「建议收藏」

    netstat命令输出结果分析「建议收藏」netstat命令一般用来查看IP/Port占用情况,在网络程序员那里就可以用于检测数据发送/接收的端口是否正确。比如最近在做“视频实时传输”项目时就是用它发现问题的。所以有必要看懂netstat命令输出结果的含义,下面给出三个典型的结果:说明:Tserver01为一个UDP服务器测试程序,用于接收客户端的请求数据,然后回传另一组数据到客户端。UDP——传输协议为UDP协

    2022年7月23日
    10

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号