lodash 4.16.1方法整理

最近才开始用lodash,发现确实有些函数可以避免自己写一些重复代码,用自己的话记录一些自己觉得比较有用的,有一些函数大概看的时候还没领会到它的精髓所在,以后再说
不是全部,不是全部,不是全部

loadsh中有些和原生js同名的函数,但是规则会不太一样,比如isNaN,最好用原生的,除非对规则的区别很清楚

方法有点多,建议一次只看一个类别,有空的时候来看看,熟悉熟悉

版本4.16.1

1.Array

chunk 根据传入的长度拆分数组
compact 用传入数组的非假值来创建一个新数组
difference 第一个参数中去除第二个参数中的值,创建一个新数组
differenceBy
differenceWith
drop 去除数组的前n个元素
dropRight
dropRightWhile
dropWhile
fill 用value值来填充(替换)数组中的值
findIndex 查找元素索引
findLastIndex
flatten 减少一级数组的嵌套深度
flattenDeep 降为一维数组
flattenDepth 指定降低的维数
fromPairs 把嵌套的数组转换为对象
initial 获取除了最后一个元素之外的元素,如果只有一个元素,返回空数组
intersection 把传入的几个数组的共同的值过滤出来,组成一个数组
intersectionBy
intersectionWith
last 获取最后的元素
lastIndexOf
pull 移除数组中所有和给定值相等的元素
pullAll
pullAllBy
pullAllWith
pullAt 根据索引移除
tail 获取数组中第一个以外的元素
take 从数组开始位置获取n个元素
takeRight
takeRightWhile
takeWhile
uniq 对数组去重
uniqBy
uniqWith
unzip 看官方例子
without 从数组中去除一些值
xor 类似异或的操作,返回别的数组里没有的值
xorBy
xorWith
zip 对应unzip
zipObject 把数组打包成对象
zipObjectDeep
zipWith

2.Collection

countBy 根据给定条件给元素计数
filter 过滤留下返回为真的元素
find 返回第一个返回为真的元素
findLast
forEach 遍历元素,对象也可以
forEachRight
groupBy 根据给定条件分组
includes 判断是否包含某元素
keyBy 根据给定的key分组,成对象
map 看官方例子
orderBy
partition 分组,第一组是返回为真的元素,第二组是返回为假的元素
reject 过滤留下返回为假的元素
sample 从集合中随机返回一个元素
sampleSize 随机获得n个元素
shuffle 打乱集合的顺序
size 数组返回length,对象返回可枚举属性个数

3.Date

now 相当于 new Date().getTime()

4.Function

after 绑定一个cb,函数执行n次后执行cb
before 函数最多执行n遍,后面再调用会返回最后一次调用的结果
ary 限制函数的参数个数
bindKey 可以用占位符,可以绑定还不存在的函数
curry 柯里化函数,有多种姿势可以用(滑稽)
debounce 防抖函数
defer 推迟调用func,直到当前堆栈清理完毕
flip 创建一个参数顺序相反的函数
memoize 创建一个会缓存结果的函数
negate 返回一个函数,这个函数对自己写的断言函数(返回bool值)f结果取反
once 函数只能调用一次
overArgs 可以对函数的参数分别进行处理
partial 像bind,但是不绑定this
rearg 调整参数顺序
spread 类似apply,对promise.all有妙用,看官方例子
throttle 节流函数

5.Lang

clone 浅拷贝
cloneDeep 深拷贝
cloneDeepWith 自定义拷贝函数,决定哪些需要拷贝
cloneWith 同上
conformsTo 判断object的属性是否符合期望值,看官方例子
eq 判断相等,但是有些规则可能和自己想像的有出入,要注意
isArguments 判断参数是不是一个类argument,单纯的数组返回false

function test(value){
  console.log(_.isArguments(value)) // 注意这个是返回false的
  console.log(_.isArguments(arguments)) // 注意这个是返回false的
}
test([1,2,3]);

isEqual 深比较,就是说会比较引用属性的子属性
isEqualWith 自定义比较函数
isMatch isEqual的局部版本,就是说有一部分属性能深度相等就可以,具体看官方例子
isMatchWith
isNative 判断参数是不是原生的函数,有坑,看官方文档
isUndefined 判断undefined,传null返回false

6.Math

ceil 根据精度向上舍入,精度为负表示小数点前的位数,_.ceil(6040, -2); // => 6100
floor 向下
round 四舍五入
max 返回数组中最大的值
maxBy 根据传入的函数判断大小,看官方例子
mean 计算数组平均值
meanBy
sum 数组的和
sumBy

7.Number

clamp 把第一个参数限制在上下限之间,看官方例子
random 返回一个上下限之间的随机数

8.Object

assign 赋可枚举属性到前一个对象上,不定参数
assignIn 包括原型上的值
assignInWith 自定义函数来决定如何赋值
assignWith
at get的数组版本
defaults 分配来源对象的可枚举属性到目标对象所有解析为 undefined 的属性上
defaultsDeep 递归
findKey 返回最先被 predicate 判断为真值的元素的 key
findLastKey 反向遍历
forIn 遍历对象的自身和继承的可枚举属性,如果返回 false,iteratee 会提前退出遍历
forOwn 遍历自身的可枚举属性
functions 取出对象自身可枚举属性组成一个数组
functionsIn 包含继承的属性
get 根据对象的路径获取值,路径的意思看官方例子,可以设置取不到时候的默认值
has 判断路径是否是object对象的直接属性
hasIn 包含继承属性
invert 把对象的键/值倒置,如果有重复的值,后面的值会覆盖前面的
invertBy 自定义倒置的方法
invoke 调用路径上的方法,get的函数版
keys 把对象的可枚举属性名组成一个数组
keysIn 包含继承属性
mapKeys 对object的key进行操作,生成一个对象
mapValues 对value进行操作
merge 递归合并来源对象自身和继承的可枚举属性到目标对象,看官方例子
mergeWith
omit 忽略对象的一些属性,生成一个新对象
omitBy
pick 选取一些属性,组成一个新对象
pickBy
result 类似get,如果取到的是函数,就执行这个函数并返回结果
set 用法类似get,但是是创建,影响object,看官方例子
setWith
toPairs 创建object自身可枚举属性的键值对数组,不包含原型上的属性
toPairsIn
transform 类似reduce,看官方例子
unset 删除路径上的属性,和set相反
update 类似set,要提供赋值的函数,看官方例子
updateWith 比update多接收一个生成路径的函数
values 创建 object 自身可枚举属性的值为数组,非对象的值会强制转换为对象
valuesIn

9.Seq

都是链式调用和惰性计算相关的方法,不知道咋描述,看官方例子吧还是

10.String

camelCase 转换为驼峰写法
capitalize 转换为首字母大写
endsWith 检查字符串是否以给定的string结尾
escape 转义HTML实体字符
escapeRegExp 转义RegExp需要转的字符
kebabCase 中划线写法
lowerFirst 首字母小写
pad 填充字符到指定长度,看官方例子
padEnd 在右侧填充
padStart
repeat 重复 N 次给定字符串
snakeCase 小写,下划线分隔
startCase 大写开头,空格分隔
startsWith 对应endsWith
template 渲染模板,看官方例子
trim 增加一个要去除的字符的参数
trimEnd
trimStart
truncate 截断字符串,并以omission填充,看官方例子
unescape
upperFirst

11.Util

这一部分的方法都要看官方例子为好
attempt 调用func,捕捉error
bindAll 绑定对象方法的this为对象本身
cond 生成一个断言函数,看官方例子
conforms 类似cond
flow 返回一个函数,连续调用参数中传递的函数数组
flowRight
matches 返回一个深比较函数
over 依次调用传入的函数
overEvery
overSome
range 创建一个从start到end的数组
rangeRight
stub开头一些函数,应该是为了一些需要传递函数参数的使用的时候方便
times 执行多次函数参数
toPath 将传入参数转换为可用的路径
uniqueId 生成唯一id

你可能感兴趣的:(javascript)