lodash 工具库的使用

阅读数:155 评论数:0

跳转到新版页面

分类

html/css/js

正文

一、概述

lodash是一个JavaScript语言的工具库,提供了很多实用工具函数。

//安装
npm install lodash
// 引入
import _ from "lodash";

二、常用方法

1、_.get(object,path,[defaultValue]

根据 object对象的path路径获取值。 如果解析 value 是 undefined 会以 defaultValue 取代。

object 要检索的对象
path (Array|string) 要获取属性的路径
defaultValue 如果解析值是 undefined ,这值会被返回。
var object = { 'a': [{ 'b': { 'c': 3 } }] };
_.get(object, 'a[0].b.c'); // => 3
_.get(object, 'a.b.c', 'default'); // => 'default'

2、_.forIn(object,[iteratee=_.identity])

使用 iteratee 遍历对象的自身和继承的可枚举属性。 iteratee 会传入3个参数:(value, key, object)。 如果返回 falseiteratee 会 提前退出遍历。

function Foo() {
  this.a = 1;
  this.b = 2;
}
 
Foo.prototype.c = 3;
 
_.forIn(new Foo, function(value, key) {
  console.log(key);
});
// => Logs 'a', 'b', then 'c' (无法保证遍历的顺序)。

3、_.chunk(array,[size=1])

将数组(array)拆分成多个 size 长度的区块,并将这些区块组成一个新数组。 如果array 无法被分割成全部等长的区块,那么最后剩余的元 素将组成一个区块。

_.chunk(['a', 'b', 'c', 'd'], 2);// => [['a', 'b'], ['c', 'd']] 

_.chunk(['a', 'b', 'c', 'd'], 3);// => [['a', 'b', 'c'], ['d']]

4、_.difference(array,[values])

array 要检查的数组
values 排除的值

返回一个过滤值后的新数组。

_.difference([3, 2, 1], [4, 2]);// => [3, 1]

5、_.intersection([array])

返回一个包含所有传入数组交集元素的新数组。

_.intersection([2, 1], [4, 2], [1, 2]);// => [2]

6、_.union([array])

返回一个新的联合数组。

_.union([2], [1, 2]);// => [2, 1]

7、_.uniq(array)

返回新的去重后的数组。

_.uniq([2, 1, 2]);// => [2, 1]

8、_.forEach(collection,[iteratee=_.identity])

​ 调用 iteratee 遍历 collection(集合) 中的每个元素, iteratee 调用3个参数: (value, index|key, collection)。 如果迭代函数(iteratee)显式 的返回 false ,迭代会提前退出。

_([1, 2]).forEach(function(value) {
  console.log(value);
});
// => Logs `1` then `2`.
 
_.forEach({ 'a': 1, 'b': 2 }, function(value, key) {
  console.log(key);
});
// => Logs 'a' then 'b' (iteration order is not guaranteed).

9、_.orderBy(collection,[iteratees=_.identity],[orders])

如果没指定 orders(排序),所有值以升序排序。 否则,指 定为"desc" 降序,或者指定为 “asc” 升序,排序对应值。

var users = [  { 'user': 'fred',   'age': 48 },  { 'user': 'barney', 'age': 34 },  { 'user': 'fred',   'age': 40 },  { 'user': 'barney', 'age': 36 }]; // 以 `user` 升序排序 再  `age` 以降序排序。

_.orderBy(users, ['user', 'age'], ['asc', 'desc']);// => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]

10、_.size(collection)

返回集合的长度。

_.size([1, 2, 3]);// => 3

_.size({ 'a': 1, 'b': 2 });// => 2 

_.size('pebbles');// => 7

11、_.max(array)

计算 array 中的最大值。 如果 array 是 空的或者假值将会返回 undefined

_.max([4, 2, 8, 6]);
// => 8
 
_.max([]);
// => undefined

var objects = [{ 'n': 1 }, { 'n': 2 }];
 
_.maxBy(objects, function(o) { return o.n; });
// => { 'n': 2 }
 
// The `_.property` iteratee shorthand.
_.maxBy(objects, 'n');
// => { 'n': 2 }

12、_.round(number,[precision=0])

根据 precision(精度) 四舍五入 number

_.round(4.006);
// => 4
 
_.round(4.006, 2);
// => 4.01
 
_.round(4060, -2);
// => 4100

13、_.isEqual(value,other)

如果 两个值完全相同,那么返回 true,否则返回 false

var object = { 'a': 1 };
var other = { 'a': 1 };
 
_.isEqual(object, other);
// => true
 
object === other;
// => false

14、_.cloneDeep(value)

深拷贝

var objects = [{ 'a': 1 }, { 'b': 2 }]; 
var deep = _.cloneDeep(objects);
console.log(deep[0] === objects[0]);// => false

15、_.isEmpty(value)

_.isEmpty(null);
// => true
 
_.isEmpty(true);
// => true
 
_.isEmpty(1);
// => true
 
_.isEmpty([1, 2, 3]);
// => false
 
_.isEmpty({ 'a': 1 });
// => false

16、_.range([start=0],end,[step=1])

返回范围内数字组成的新数组。

_.range(4);
// => [0, 1, 2, 3]
 
_.range(-4);
// => [0, -1, -2, -3]
 
_.range(1, 5);
// => [1, 2, 3, 4]
 
_.range(0, 20, 5);
// => [0, 5, 10, 15]
 
_.range(0, -4, -1);
// => [0, -1, -2, -3]
 
_.range(1, 4, 0);
// => [1, 1, 1]
 
_.range(0);
// => []

17、_.truncate([string=''],[options=])

截断string字符串,如果字符串超出了限定的最大值。 被截断的字符串后面会以 omission 代替,omission 默认是 “…”

options.length=30 允许的最大长度
options.omission='...' 超出后的代替字符
options.separator 截断点
_.truncate('hi-diddly-ho there, neighborino');
// => 'hi-diddly-ho there, neighbo...'
 
_.truncate('hi-diddly-ho there, neighborino', {
  'length': 24,
  'separator': ' '
});
// => 'hi-diddly-ho there,...'
 
_.truncate('hi-diddly-ho there, neighborino', {
  'length': 24,
  'separator': /,? +/
});
// => 'hi-diddly-ho there...'
 
_.truncate('hi-diddly-ho there, neighborino', {
  'omission': ' [...]'
});
// => 'hi-diddly-ho there, neig [...]'

 

 




相关推荐