_.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');

lodash 常用总结相关推荐

  1. Lodash常用用法总结

    Lodash是一个轻量级的JavaScript工具函数库,它方便了日常开发中对数据的操作,提高了开发效率. ​ 日常开发中,通常会对数据,特别是数组和对象进行各种读写等操作:比如去重,拷贝,合并,过滤 ...

  2. lodash 常用的方法总结(持续更新)

    lodash的引入 var _ = require('lodash'); castArray _.castArray将一个值铸造为数组如果它不是数组类型. _.castArray(1); // =&g ...

  3. 赐你一本_.武林秘籍,Lodash常用的方法帮助你快速开发。

    官方文档 https://www.lodashjs.com/ $ npm i -g npm $ npm i --save lodash _.clone() 浅拷贝 var obj1 = {a: 1,b ...

  4. lodash 工具库

    lodash是一套工具库,内部封装了很多字符串.数组.对象等常见数据类型的处理函数. 1.lodash的引用 import _ from 'lodash' 用一个数组遍历来说明为什么要使用lodash ...

  5. 学习lodash——这一篇就够用

    在ES6盛行,ES78马上就要出来的情况下:我们还是需要懂得一些工具库的使用,比较推荐的是lodash. 在下面就会谈一谈为什么要使用lodash和lodash的基本使用. 首先要明白的是lodash ...

  6. JavaScript代码规范

    类型 原始值: 相当于传值(JavaScript对象都提供了字面量),使用字面量创建对象. string number boolean null undefined var foo = 1,bar = ...

  7. 前端JavaScript规范

    摘要: JavaScript规范 目录 类型 对象 数组 字符串 函数 属性 变量 条件表达式和等号 块 注释 空白 逗号 分号 类型转换 命名约定 存取器 构造器 事件 模块 jQuery ES5 ...

  8. 原核转录组非编码RNA研究

    本文转载自"美吉生物",己获授权 说到非编码RNA,可能大家会想到真核生物中miRNA .lncRNA和circRNA.确实~"真核非编码RNA三剑客"现阶段进 ...

  9. JS lodash库在开发中常用到的方法

    目录 一.摘要 二.常用方法 一.摘要 lodash是JS一个开箱即用的库函数,里面对于在日常开发中常用到的方法都是已经封装好的,使用起来非常方便,本篇记录了在日常开发过程总经常用的方法,就大概记录一 ...

最新文章

  1. 阅读笔记:Solving the “false positives” problem in fraud prediction
  2. 图解TCP四次握手断开连接
  3. docker添加阿里云专属镜像
  4. 【dfs】拔河比赛(ybtoj dfs-1-1)
  5. 原生js实现简洁的返回顶部组件
  6. 开发了那么多项目,你能自己手写个健壮的链表出来吗?
  7. 你敲键盘的声音,出卖了你 | 附开源代码
  8. C++ public、protected、private 继承方式的区别
  9. 消费分期群体-在校大学生和职场白领
  10. No.0_Team C#
  11. 联想E430c:To interrupt normal starup,press enter问题解决方法
  12. 映泰G31计算机主板进入BIOS,映泰主板bios设置方法
  13. 服务器图标怎么显示在任务栏,win10任务栏右侧的图标如何显示或隐藏起来?附图文教程...
  14. 博客迁移说明 : )
  15. 蓝牙技术|蓝牙助力智能手表的未来发展
  16. autorecover mac的ppt_Office for Mac快捷键之苹果PowerPoint幻灯片PPT篇
  17. 一维信号卷积与图像卷积的区别
  18. 【mysql】dump
  19. 苹果庆祝 7 月17 日 Emoji 世界表情符号日,带来众多新表情
  20. openwrt旁路由的设置

热门文章

  1. C Primer Plus 6th Edition第三章编程练习上溢下溢
  2. 正睿OI补题(递归与递推,前缀和与差分)
  3. 菜鸟的逆袭 - 自我介绍
  4. 800亿市值登陆科创板,风口之上,奇安信迎来新起点
  5. 两大热门解释器比较——PyPy和CPython的区别(官方文档翻译)
  6. android rdp服务器,[Android][FreeRDP与Window远程连接]
  7. 【程序员装备大全】程序员,就要对自己好一点!
  8. 不是有效的win32程序_豪横!程序员搭个人博客,一个 GitHub 账号足矣!
  9. cmd命令删除文件夹或文件
  10. 如何配色?绘画初学者怎么做好色彩搭配?