美文网首页
Lodash 实用 API 简介

Lodash 实用 API 简介

作者: 双面小Q | 来源:发表于2018-11-30 14:07 被阅读0次

Array

将数组拆分成多个size长度的区块,并将这些区块组成一个新数组。 如果数组无法被分割成全部等长的区块,那么最后剩余的元素将组成一个区块。
不修改原数组,返回一个包含拆分区块的新数组(注:相当于一个二维数组)。

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

创建一个新数组,包含原数组中所有的非假值元素。例如false, null, 0, "", undefined, 和NaN都是被认为是“假值”。
不修改原数组,返回过滤掉假值的新数组。

创建一个新数组,这个数组中的值,为第一个参数排除了给定数组中的值。结果值的顺序是由第一个数组中的顺序确定。
不像 _.pullAll(array, values),该方法不修改原数组,返回一个过滤值后的新数组。

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

根据depth递归减少数组的嵌套层级(注:即数组扁平化)。
不修改原数组,返回减少嵌套层级后的新数组。

使用二进制的方式检索来决定value值应该插入到数组中尽可能小的索引位置,以保证数组的排序。
返回value值 应该在数组中插入的索引位置。

_.sortedIndex([30, 50], 40);
// => 1

数组的并集,按顺序返回,返回数组的元素是唯一的。
返回一个新的联合数组。

创建一个去重后的数组副本(注:即数组去重)。
不修改原数组,返回新的去重后的数组。

创建一个分组元素的数组,数组的第一个元素包含所有给定数组的第一个元素,数组的第二个元素包含所有给定数组的第二个元素,以此类推(注:即数组转置)。
返回分组元素的新数组。

_.zip(['fred', 'barney'], [30, 40], [true, false]);
// => [['fred', 30, true], ['barney', 40, false]]

它接受2个数组,第一个数组中的值作为属性名,第二个数组中的值作为相应的属性值(注:即将两个数组用键值对关联)。
返回一个新的对象。

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

Collection (Array|Object)

创建一个集合对象,对象的键是经过迭代函数(iteratee)执行处理集合中每个元素后返回的结果,每个键对应的值负责生成键的元素组成的数组。
返回一个新的集合对象。

_.groupBy([6.1, 4.2, 6.3], Math.floor);
// => { '4': [4.2], '6': [6.1, 6.3] }
 
// The `_.property` iteratee shorthand.
_.groupBy(['one', 'two', 'three'], 'length');
// => { '3': ['one', 'two'], '5': ['three'] }

对集合通过迭代函数来进行排序,若没指定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]]

Function

var abc = function(a, b, c) {
  return [a, b, c];
};
 
var curried = _.curry(abc);
 
curried(1)(2)(3);
// => [1, 2, 3]
 
curried(1, 2)(3);
// => [1, 2, 3]
 
curried(1, 2, 3);
// => [1, 2, 3]
 
// Curried with placeholders.
curried(1)(_, 3)(2);
// => [1, 2, 3]
// 避免窗口在变动时出现昂贵的计算开销。
jQuery(window).on('resize', _.debounce(calculateLayout, 150));
 
// 当点击时 `sendMail` 随后就被调用。
jQuery(element).on('click', _.debounce(sendMail, 300, {
  'leading': true,
  'trailing': false
}));
 
// 确保 `batchLog` 调用1次之后,1秒内会被触发。
var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });
var source = new EventSource('/stream');
jQuery(source).on('message', debounced);
 
// 取消一个 trailing 的防抖动调用
jQuery(window).on('popstate', debounced.cancel);
_.delay(function(text) {
  console.log(text);
}, 1000, 'later');
// => Logs 'later' after one second.
var initialize = _.once(createApplication);
initialize();
initialize();
// => `createApplication` is invoked once
// 避免在滚动时过分的更新定位
jQuery(window).on('scroll', _.throttle(updatePosition, 100));
 
// 点击后就调用 `renewToken`,但5分钟内超过1次。
var throttled = _.throttle(renewToken, 300000, { 'trailing': false });
jQuery(element).on('click', throttled);
 
// 取消一个 trailing 的节流调用。
jQuery(window).on('popstate', throttled.cancel);
var p = _.wrap(_.escape, function(func, text) {
  return '<p>' + func(text) + '</p>';
});
 
p('fred, barney, & pebbles');
// => '<p>fred, barney, &amp; pebbles</p>'

相关文章

  • Lodash 实用 API 简介

    Array _.chunk(array, [size=1]) 将数组拆分成多个size长度的区块,并将这些区块组成...

  • 框架&库:lodash源码系列

    API介绍 文档https://lodash.com/docs 中文翻译http://lodash.qiuqudo...

  • 无敌的 NPM 软件包

    实用工具 Lodash lodash是一套现代 JavaScript 实用程序库,提供模块化、性能与多种附加功能。...

  • 前端常用的库

    lodash https://www.lodashjs.com/ 简介: Lodash 通过降低 array、nu...

  • lodash简介

    <<模块lodash的作用>> Lodash是一个内部封装了诸多对字符串、数组、对象等常见的数据类型的处理函数的一...

  • Lodash简介

    简介 Lodash是一个著名的javascript原生库,不需要引入其他第三方依赖。是一个意在提高开发者效率,提高...

  • lodash 简介

    具体使用细节参见:http://lodashjs.com/docs/#_chunkarray-size1 这是一个...

  • JavaScript 实用工具库 | Lodash

    简介 Lodash[https://lodash.com/] 提供模块化、性能和额外功能的现代 JavaScrip...

  • Vue项目中安装及使用lodash

    官网介绍:Lodash是一个一致性、模块化、高性能的 JavaScript 实用工具库。 通俗来说,Lodash ...

  • lodash 学习笔记

    什么是 lodash Lodash 是一个一致性、模块化、高性能的 JavaScript 实用工具库。 为什么要用...

网友评论

      本文标题:Lodash 实用 API 简介

      本文链接:https://www.haomeiwen.com/subject/inkfcqtx.html