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)
上一篇 2025年9月1日 下午5:01
下一篇 2025年9月1日 下午5:22


相关推荐

  • python正方形螺旋线的绘制

    python正方形螺旋线的绘制多试错,反正又不要成本。importturtlea=1foriinrange(50):turtle.left(90)turtle.fd(a+1)turtle.left(90)

    2022年7月5日
    31
  • 卸载jdk1.7

    卸载jdk1.7卸载jdk1.7:1、开始->程序->控制面板->卸载程序->程序和功能2、找到jdk的两个程序:java7update45和java(TM)SEDevelopmentKit73、右键->卸载转载于:https://www.cnblogs.com/Noul/p/10406623.html…

    2022年6月25日
    56
  • 如何防止Arp攻击

    如何防止Arp攻击首先需要查找网关的 IP 和 MAC 地址 查看的方法很多 最直接的在 cmd 里面执行 arp a 但这是被 arp 攻击之前 被攻击成功后 192 168 0 1 对应的 mac 地址会变成攻击电脑的 Mac 地址 还有另一个方法 登录路由器查看 在浏览器输入 192 168 0 1 这里是个人的网关 然后输入帐号密码 登录进去 一般在这里都可以找到一个 lanmac 地址 这个就是 其次将本机的 arp 中的 192 168 0 1 对应的 mac 地址改成静态 在运行中输入 cmd nbsp gt nbsp arp amp

    2026年3月26日
    2
  • 小程序 生命周期

    小程序 生命周期生命周期指的就是小程序从创建到销毁的过程小程序生命周期分为应用生命周期和页面生命周期应用生命周期影响页面生命周期应用生命周期应用生命周期是在 app js 里面调用的属性说明 onLaunch 应用第一次启动的就会触发的事件 onShow 应用被用户看到 onHide 用户被隐藏 onError 应用的代码发生了报错的时候就会触发 onPageNotFou 页面找不到就会触发代码示例 onLaunch 第一次启动的时候就会触发 onLaunchApp

    2026年3月26日
    3
  • (c语言)圣诞树

    (c语言)圣诞树Mooc 课后习题集及做到的一些有趣的题这是我初学 c 开始有意识的记录自己做的每一道题开始写下的代码水平一个一个代码发出来直到我现在学的数据结构那个时候还不会注释格式什么的也是按照自己怎么喜欢怎么来如果真不会看会代码理解一下 qwq 如代码有错请见谅毕竟都好久以前敲得了 hhh 如果对各位的思路引导有帮助那更好 include stdio h intmain inti j n space printf 请输入树的层数 scanf stdio h

    2026年3月17日
    2
  • FindWindow函数

    FindWindow函数FindWindow函数用来查询主窗口(子窗口不能查询),并且返回窗口句柄。函数原型:praram[in]lpClassName:以NULL结尾的字符串,如果为NULL,则查找所有与lpWindow

    2022年7月2日
    28

发表回复

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

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