首页 > 其他分享 >常用的lodash方法

常用的lodash方法

时间:2024-01-28 11:14:54浏览次数:18  
标签:常用 lodash age _. 数组 array 方法 属性

概述: lodash是一套JS工具库,内部封装了很多字符串、数组、对象等常见数据类型的处理函数。 lodash的所有函数都不会在原有的数据上进行操作,而是复制出一个新的数据而不改变原有数据。类似immutable.js的理念去处理。 官方中文地址   安装:

浏览器环境:

<script src="lodash.js"></script>

通过 npm:

$ npm i --save lodash

调用:

let _ = require("lodash");//方式一:require方式 (commonjs)
import _ from 'lodash';// 方式二:import方式 (es6)
Vue.prototype.$lodash = _;//全局方式:mian.js中prototype方式

_.cloneDeep();//调用

常用方法:

1.chunk,将数组进行切分。
const arr = [1,2,3,4,5,6,7,8,9];
_.chunk(arr,2);
// =>[[1,2],[3,4],[5,6],[7,8],[9]]
这个函数把数组按照一定的长度分开,返回新的数组。(片段化数组)

2.compact,去除假值。(将所有的空值,0,NaN过滤掉)

_.compact(['1','2',' ',0])
// => ['1','2']
对应的还有一个数组去重函数,这在实际的开发中很有作用。

3.filter和reject,过滤集合,传入匿名函数。(二者放在一起讨论的原因是,两个函数类似但返回的值是相反。)

复制代码
//示例1:
_.filter([1,2],x => x = 1)
// => [1]
_.reject([1,2],x => x=1)
// => [2]
这两个过滤器,第二个参数值是false的时候返回是reject的功能,相反是true的时候是filter。

//示例2:
var users = [
  { 'user': 'barney', 'age': 36, 'active': true },
  { 'user': 'fred',   'age': 40, 'active': false }
];
 
_.filter(users, function(o) { return !o.active; });
// => {user: "fred", age: 36, active: true}
// The `_.matchesProperty` iteratee shorthand. _.filter(users, ['active', false]); // => {user: "fred", age: 36, active: true}
复制代码

4.map和forEach,数组遍历。(相似)

map的回调函数中是支持return返回值的。不过二者都不改变原来的数组。
_.map([1,2],x => x+1)
// => [2,3]
推荐使用map
5.merge,参数合并。(区别于assign:assign 函数不会处理原型链上的属性,也不会合并相同的属性,而是用后面的属性值覆盖前面的属性值 merge 遇到相同属性名的时候,如果属性值是纯对象或集合的时候,会合并属性值) 复制代码
const aa = _.assign({},{a:1},{a:2},{b:3})
//{a:2,b:3}
const bb = _.merge({},{a:1},{a:2},{b:3})
//{a:2,b:3}
const a1 = _.assign({},{a:1},{b:{a:1,b:2}},{b:{a:3}})
//{a:1,b:{a:3}}
const a2 = _.merge({},{a:1},{b:{a:1,b:2}},{b:{a:3}})
//{a:1,b:{a:3,b:2}}
复制代码

6.sumby,sortby,orderBy,数组对象求和、排序(区别:sortby升序排序,orderBy指定为"desc" 降序,或者指定为 "asc" 升序,默认升序)

复制代码
var arrs = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];
 _.sumBy(arrs, k => k.n)  //20
_.sumBy(arrs,'n')  //20

var users = [
    { 'user': 'barney',  'age': 36 },
    { 'user': 'fred',    'age': 40 },
    { 'user': 'pebbles', 'age': 1 }
  ];
_.sortBy(users,'age')
_.orderBy(users, ['user', 'age'], ['desc', 'desc']);
复制代码

7.cancat数组连接,uniq数组去重,union合并两个数组去重

复制代码
var array = [1];
var other = _.concat(array, 2, [3], [[4]]);
console.log(other);
// => [1, 2, 3, [4]]
console.log(array);
// => [1]
可以接受多个参数,将多个参数合并为一个数组元素。
_.uniq([1,1,3])
// => [1,3]
这跟介绍的第二个函数compact有很好的配合作用。
_.union([2], [1, 2]); // => [2, 1]
复制代码

8.keys ,取出对象中所有的key值组成新的数组。

复制代码
function Foo() {
  this.a = 1;
  this.b = 2;
}
Foo.prototype.c = 3;
_.keys(new Foo);
// => ['a', 'b'] (iteration order is not guaranteed)
_.keys('hi');
// => ['0', '1']
 
类似object.keys(),返回对象中可枚举属性的数组。
复制代码

其他:

复制代码
_.drop 
//去除array前面的n个元素,n默认是1

_.range(10) //生成元素为0到9的数组 _.times(10, (i)=>console.log(i)) //循环10次 _.uniqueId() //生成不同的id,用于元素中的id值再好不过 _.startWith //判断字符串是否以xx开头(es6中为startsWith) _.endWith //判断字符串是否以xx结尾(es6中为endsWith) _.truncat //截取指定长度后加… 用于处理标题过长再好不过 _.template //es6有字符串模板的语法,而lodash是es5的替代方案 _.assign //下一个对象的属性会覆盖上一个对象的属性,es6有Object.assign,类似于jQuery.extend _.assignIn //lodash里很多方法带In的都是可枚举原型链上的属性 _.defaults //安全合并,即忽略undefined/null的重写 _.findKey //根据value的属性值找key .mapKeys //遍历重写key, 相当于.forIn .mapValues //遍历重写value , 相当于.forIn _.invert //反转映射,快速通过value值找key _.omit //返回移除部分属性的副本,比如提交表单时有些字段不要提交 _.pick //与omit相反,提取部分属性的副本,比如只提交某些字段 _. clamp //确认所给值只在min,max之间 _.max //最大 _.min //最小 _.sum //求和 _.random //生成随机数 _.round //四舍五入,允许指定精确位数 _.isNumber _.isInterger _.isFunction _.isPlainObject _.isArray _.isDate _.isElement _.isNil //null or undefined _.isEmpty //{} or 空数组 _.isEqual //支持对象和数组 _.isMatch //匹配对象属性值 _.cloneDeep //深度复制 _.clone //浅复制 _.once //只执行一次 _.before //最多n-1次 _.after //n次后执行 _.debounce //忽略频繁执行 _.union //合并两数组,去重 _.uniq //去重 _.pull(array,element1,element2) // 直接在array中移除元素, _.without(array,element1,element2) //得到新array中移除元素 _.remove(array, function) //直接在array移除在function返回true的元素 _.sameple(array) //随机取1 _.samepleSize(array, int) // 随机取n _.shuffle(array) //乱序, jQuery.shuffle _.find(array, function | object) //根据function返回值和对象查找1个结果 _.filter(array, function | object) //根据function返回值和对象查找多个结果 _.groupBy(array, string) //分组,与多合一相反 _.keyBy(array, string) //分组,类似groupBy, 但只有唯一值 _.countBy(array, string) //分组统计 _.orderBy(array, array, array) _.sortBy(array, array) _.difference(array1,array2) //找不同于array2,元素是Object用differenceBy _.xor(array1,array2) //得到非交集,元素是Object用xorBy _.intersection(array1,array2) //得到交集,元素是Object用intersectionBy
复制代码

标签:常用,lodash,age,_.,数组,array,方法,属性
From: https://www.cnblogs.com/luluping/p/17992563

相关文章

  • Vue 数据相关实例方法vm.$watch、vm.$set、vm.$delete介绍
    vm.$watch观察vue实例变化的一个表达式或计算属性函数。回调函数得到的参数为新值和旧值。表达式只接受监督的键路径。对于更复杂的表达式,用一个函数取代。//写法一:this.$watch('a.b.c',function(newVal,oldVal){})//键路径vm.$watch(function(){this.fullName=this.......
  • 常用doc命令
    Windows+r,输入cmd打开命令提示窗口切换盘符D:查看当前目录dir打开文件cd清理屏幕cls查看电脑ipipconfig打开应用calc计算机notepad记事本文件操作创建文件目录md+文件目录名移除文件目录rd+文件目录名创建文件cd>+文件名删除文件del+文件名查......
  • [office] Excel高级筛选的方法
    我们在工作中经常会用到Excel表格,Excel提供了高级筛选功能。即将数据区域与条件区域分开,并通过高级筛选将结果分开存放,从而保持各自的相互独立性。那在Excel表格中,如何使用高级筛选呢?现在小编就和大家介绍一下Excel高级筛选的方法。方法/步骤如下: 1、启动excel2007,......
  • win10使用uefi+gpt启动蓝屏的解决方法
    在电脑使用uefi安装系统后,每次开机都要蓝屏,错误代码0xc000000e,如下图按提示按Esc键后会进入BIOS,直接Esc退出,就能正常启动了。因之前去联想售后安装过系统,启动是没问题的,所以在想是不是系统引导出现了问题,因此开始了漫长的网上搜索过程。不得不吐槽一下,现在网络上的内容真的是......
  • 常用Dos命令
    运行命令打开方式win+R输入cmd在任意的文件夹中长按shift,点击右键,选择在此处打开powershell窗口。开始菜单里,点击终端打开。资源管理器的地址前面加cmd空格,路径,输入回车打开。以管理员方式打开第三种方式右键,选择以管理员方式打开常用的Dos命令#盘符切换D:#查看当......
  • 生活常识-起名方法
    前言全局说明生活常识-起名方法内容来源于网络,个体差异,如有不适,请到正规医院就诊一、孩子起名1.1起名公式动词+形容词(名词)比如:辛弃疾(弃(动)+疾(名));霍去病(去(动)+病(名))全是动词不行:熊出没;王奔腾没有动词也不行,就成全名词:子涵;子轩;梓涵的怪圈循环来源:微信视频号“穆糖纯......
  • 初步学习java的方法 Day5
    命令行传递参数示例图片:初识javaDay5publicstaticvoidmain(String[]args){inti=0;while(i<100){i+=1;System.out.println(i);if(i==30){break;}}}public......
  • R数据分析:非劣效性研究设计的统计处理方法,原理和实例
    在我们经常接触的统计模式中,我们是在寻求推翻原假设,证明差异,这种统计模型在传统的临床试验中,在各种统计推断中已经成为默认了。在传统的临床试验中通常会将一种新的治疗方法与标准治疗或安慰剂进行比较,从而证明这种新治疗具有更好的疗效,这类试验的原假设是这两种治疗方案的治疗效......
  • 常用标准IO
    标准IO2024.1.27写文件设置FILE*fopen(constchar*pathname,constchar*mode)//打开文件返回值返回file指针,本质是结构体指针(赋值给FILE变量)//NULL函数使用pathname路径,mode模式moder可读r+可读可写w可写w+可读可写,新建文件a可写,追加a+......
  • 系统科学方法概论第一章读后感
    《系统科学方法概论》第一章读后感:在阅读《系统科学方法概论》的第一章后,我深感系统科学的重要性和广泛应用。这一章节为读者提供了系统科学的全面概述,强调了系统思维在解决复杂问题方面的关键作用。首先,本章介绍了系统科学的起源和发展,让我了解到系统科学是一门跨学科的研究领......