loadsh 简介
Lodash 是一个一致性、模块化、高性能的 JavaScript 实用工具库。
安装
浏览器环境
<script src="lodash.js"></script>
通过 npm:
$ npm i -g npm
$ npm i --save lodash
Node.js:
// Load the full build.
var _ = require('lodash');
// Load the core build.
var _ = require('lodash/core');
// Load the FP build for immutable auto-curried iteratee-first data-last methods.
var fp = require('lodash/fp');
// Load method categories.
var array = require('lodash/array');
var object = require('lodash/fp/object');
// Cherry-pick methods for smaller browserify/rollup/webpack bundles.
var at = require('lodash/at');
var curryN = require('lodash/fp/curryN');
为什么选择 Lodash?
Lodash 通过降低 array、number、objects、string 等等的使用难度从而让 JavaScript 变得更简单。 Lodash 的模块化方法 非常适用于:
- 遍历 array、object 和 string
- 对值进行操作和检测
- 创建符合功能的函数
数组
_.drop: 创建一个切片数组,去除array前面的n个元素。(n默认值为1。)
_.flatten: 减少一级array嵌套深度。
_.flattenDeep: 将array递归为一维数组。
_.nth: 获取array数组的第n个元素。如果n为负数,则返回从数组结尾开始的第n个元素。
_.reverse: 反转array,使得第一个元素变为最后一个元素,第二个元素变为倒数第二个元素,依次类推。
_.slice: 裁剪数组array,从 start 位置开始到end结束,但不包括 end 本身的位置。
_.remove: 移除数组中predicate(断言)返回为真值的所有元素,并返回移除元素组成的数组。
_.pull:移除数组array中所有和给定值相等的元素,使用SameValueZero 进行全等比较。
_.pullAt: 根据索引 indexes,移除array中对应的元素,并返回被移除元素的数组。
_.fill: 使用 value 值来填充(替换) array,从start位置开始, 到end位置结束(但不包含end位置)。
_.concat: 创建一个新数组,将array与任何数组 或 值连接在一起。
集合
_.groupBy: 创建一个对象,返回一个组成聚合的对象。
_.keyBy: 创建一个对象组成, 返回一个组成聚合的对象。
_.flatMap: 创建一个扁平化(注:同阶数组)的数组。
_.flatMapDeep: 这个方法类似_.flatMap,不同之处在于它会继续扁平化递归映射的结果。
_.reduce: 压缩集合为一个值, 返回累加后的值。
_.every: 检查集合内是否所有元素都满足一个条件函数。
_.some : 检查集合内是否存在元素都满足一个条件函数。
函数
_.after: _.before的反向函数;此方法创建一个函数,当他被调用n或更多次之后将马上触发func 。
_.before: 创建一个调用func的函数,通过this绑定和创建函数的参数调用func,调用次数不超过 n 次。 之后再调用这个函数,将返回一次最后调用func的结果。
_.debounce :创建一个 debounced(防抖动)函数, 该函数会从上一次被调用后,延迟 xxxx毫秒后调用 func 方法。
_.throttle: 创建一个节流函数,在 wait 秒内最多执行 func 一次的函数。
语言
_.clone :创建一个 value 的浅拷贝。
_.cloneDeep : 这个方法类似_.clone,除了它会递归拷贝 value。
_.isEmpty : 检查 value 是否为一个空对象,集合,映射或者set。
_.isEqual :执行深比较来确定两者的值是否相等。
_.isArray : 检查 value 是否是 Array 类对象。
_.isNaN: 检查 value 是否是 NaN。
_.isNil : 检查 value 是否是 null 或者 undefined。
_isNull: 检查 valuealue 是否是 null。
_.isUndefined: 检查 value 是否是 undefined.
_.isObject:检查 value 是否为 Object 的language type。
_.toArray : 转换 value 为一个数组。
_.toFinite : 转换 value 为一个有限数字。
_.toInteger: 转换 value 为一个整数。
数学
_.ceil: 根据 precision(精度) 向上舍入 number。
_.floor: 根据 precision(精度) 向下舍入 number。
_.min: 计算 array 中的最小值。 如果 array 是 空的或者假值将会返回 undefined。
_.max: 计算 array 中的最大值。 如果 array 是 空的或者假值将会返回 undefined。
_.mean: 计算 array 的平均值。
数字
_.random: 产生一个包括 lower 与 upper 之间的数。
对象
_.create:创建一个继承 prototype 的对象。 如果提供了 prototype,它的可枚举属性会被分配到创建的对象上。
_.assign:分配来源对象的可枚举属性到目标对象上。 来源对象的应用规则是从左到右,随后的下一个对象的属性会覆盖上一个对象的属性。
_.forIn: 使用 iteratee 遍历对象的自身和继承的可枚举属性。
_.has: 检查 path 是否是object对象的直接属性。
_.keys: 创建一个 object 的自身可枚举属性名为数组。
_.valuse: 创建 object 自身可枚举属性的值为数组。
_.merge: 该方法类似_.assign, 除了它递归合并 sources 来源对象自身和继承的可枚举属性到 object 目标对象。
_.pick: 创建一个从 object 中选中的属性的对象。
_.omit: 反向版_.pick; 这个方法一个对象,这个对象由忽略属性之外的object自身和继承的可枚举属性组成。
字符串
_.camelCase: 转换字符串string为驼峰写法。
_.escape :返回转义后的字符串。
_.trim: 从string字符串中移除前面和后面的 空格 或 指定的字符。
_.split: 根据separator 拆分字符串string。
_.template : 创建一个预编译模板方法,可以插入数据到模板中 "interpolate" 分隔符相应的位置。
_.words : 拆分字符串string中的词为数组 。
_.replace: 替换string字符串中匹配的pattern为给定的replacement 。
实用函数
_.flow : 创建一个函数。 返回的结果是调用提供函数的结果,this 会绑定到创建函数。 每一个连续调用,传入的参数都是前一个函数返回的结果。
_.times: 调用 iteratee n 次,每次调用返回的结果存入到数组中。 iteratee 调用入1个参数: (index)。
_.overEvery: 建一个函数,传入提供的参数的函数并调用 predicates 判断是否 全部 都为真值。
_.overSome: 创建一个函数,传入提供的参数的函数并调用 predicates 判断是否 存在 有真值。
_.mixin: 添加来源对象自身的所有可枚举函数属性到目标对象。 如果 object 是个函数,那么函数方法将被添加到原型链上。
_.nthArg : 创建一个函数,这个函数返回第 n 个参数。如果 n为负数,则返回从结尾开始的第n个参数。
后记
我是彤爱,一个在沉溺于寂寞代码海洋里的前端程序员👨🏻💻
欢迎各位大佬的赐教🙏
期待与同样在努力摸索的小伙伴们交流🙌