当前位置:   article > 正文

Lodash工具库相关_lodash-es文档

lodash-es文档

Lodash 是一个一致性、模块化、高性能的 JavaScript 实用工具库。

中文文档Lodash 简介 | Lodash 中文文档 | Lodash 中文网

1.安装

  •  完整引入(不推荐)
  1. import _ from 'lodash';
  2. import { debounce } from 'lodash'

直接像上面这样引入lodash构建时构建工具将整个lodash库打包了进来,而非它其中被我们使用到的一部分。

  • 按需引入(推荐)

        (1)从lodash-es引入

import { uniq, uniqBy } from 'lodash-es';

lodash-es使用了ES module组织模块,构建工具构建时在做体积优化(tree shaking)的时候,通过对模块的依赖分析,能将lodash包中未使用到的模块都移除掉。

        (2) 使用babel插件做转换: 使用lodash官方提供的lodash/babel-plugin-lodash

2.相关方法

_.uniq(array) 创建一个去重后的array数组副本。使用了SameValueZero 做等值比较。只有第一次出现的元素才会被保留。

_.uniqBy(array, [iteratee=_.identity]) 这个方法类似_.uniq ,除了它接受一个 iteratee (迭代函数),调用每一个数组(array)的每个元素以产生唯一性计算的标准。iteratee 调用时会传入一个参数:(value)

  1. array (Array): 要检查的数组。
  2. [iteratee=_.identity] (Array|Function|Object|string): 迭代函数,调用每个元素。
  1. uniq([2, 1, 2]); // => [2, 1]
  2. uniqBy([2.1, 1.2, 2.3], Math.floor); // => [2.1, 1.2]
  3. _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }, { 'y': 1 }], 'x');
  4. // => [{ 'x': 1 }, { 'x': 2 }, { 'y': 1 }]

_.pick(object, [props])  创建一个从 object 中选中的属性的对象,返回新对象。 

  1. object (Object): 来源对象。
  2. [props] (...(string|string[])): 要被忽略的属性。(注:单独指定或指定在数组中。)
  1. var object = { 'a': 1, 'b': '2', 'c': 3 };
  2. _.pick(object, ['a', 'c']);
  3. // => { 'a': 1, 'c': 3 }

_.omit(object, [props]) 

这个方法一个对象,这个对象由忽略属性之外的object自身和继承的可枚举属性组成。(注:可以理解为删除object对象的属性)。

  1. var object = { 'a': 1, 'b': '2', 'c': 3 };
  2. _.omit(object, ['a', 'c']);
  3. // => { 'b': '2' }

_.isEmpty(value) 检查 value 是否为一个空对象,集合,映射或者set

  1. _.isEmpty(null);
  2. // => true
  3. _.isEmpty(true);
  4. // => true
  5. _.isEmpty(1);
  6. // => true
  7. _.isEmpty([1, 2, 3]);
  8. // => false
  9. _.isEmpty({ 'a': 1 });
  10. // => false

_.debounce(func, [wait=0], [options=])  创建一个 debounced(防抖动)函数,该函数会从上一次被调用后,延迟 wait 毫秒后调用 func 方法         

  1. func (Function): 要防抖动的函数。
  2. [wait=0] (number): 需要延迟的毫秒数。
  3. [options=] (Object): 选项对象。
  4. [options.leading=false] (boolean): 指定在延迟开始前调用。
  5. [options.maxWait] (number): 设置 func 允许被延迟的最大值。
  6. [options.trailing=true] (boolean): 指定在延迟结束后调用。
  1. // 避免窗口在变动时出现昂贵的计算开销。
  2. jQuery(window).on('resize', _.debounce(calculateLayout, 150));
  3. // 取消一个 trailing 的防抖动调用
  4. jQuery(window).on('popstate', debounced.cancel);

 _.throttle(func, [wait=0], [options=])

创建一个节流函数,在 wait 秒内最多执行 func 一次的函数。 该函数提供一个 cancel 方法取消延迟的函数调用以及 flush 方法立即调用

  1. func (Function): 要节流的函数。
  2. [wait=0] (number): 需要节流的毫秒。
  3. [options=] (Object): 选项对象。
  4. [options.leading=true] (boolean): 指定调用在节流开始前。
  5. [options.trailing=true] (boolean): 指定调用在节流结束后。
  1. function handler() {
  2. // some code
  3. }
  4. var throttled = _.throttle(handler, 500)
  5. // 滚动过程中,每隔 500 ms 调用一次 handler 函数
  6. window.addEventListener('scroll', throttled)

 _.isEqual(value, other) 执行深比较来确定两者的值是否相等, 比较值而非引用。

        **注意: Object 对象值比较自身的属性,不包括继承的和可枚举的属性。 支持函数和DOM节点比较。

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

_.cloneDeep(value) 递归拷贝 value。(注:也叫深拷贝)

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

_.truncate([string=''], [options=]) 截断string字符串,如果字符串超出了限定的最大值。 被截断的字符串后面会以 omission 代替,omission 默认是 "..."。

  1. _.truncate('hi-diddly-ho there, neighborino');
  2. // => 'hi-diddly-ho there, neighbo...'
  3. _.truncate('hi-diddly-ho there, neighborino', {
  4. 'length': 24,
  5. 'separator': ' '
  6. });
  7. // => 'hi-diddly-ho there,...'
  8. _.truncate('hi-diddly-ho there, neighborino', {
  9. 'length': 24,
  10. 'separator': /,? +/
  11. });
  12. // => 'hi-diddly-ho there...'
  13. _.truncate('hi-diddly-ho there, neighborino', {
  14. 'omission': ' [...]'
  15. });
  16. // => 'hi-diddly-ho there, neig [...]'

_.has(object, path) 检查 path 是否是object对象的直接属性。

  1. var object = { 'a': { 'b': 2 } };
  2. var other = _.create({ 'a': _.create({ 'b': 2 }) });
  3. _.has(object, 'a');
  4. // => true
  5. _.has(object, 'a.b');
  6. // => true
  7. _.has(object, ['a', 'b']);
  8. // => true
  9. _.has(other, 'a');
  10. // => false

_.get(object, path, [defaultValue]) 根据 object对象的path路径获取值。 如果解析 value 是 undefined 会以 defaultValue 取代。

  1. var object = { 'a': [{ 'b': { 'c': 3 } }] };
  2. _.get(object, 'a[0].b.c');
  3. // => 3
  4. _.get(object, ['a', '0', 'b', 'c']);
  5. // => 3
  6. _.get(object, 'a.b.c', 'default');
  7. // => 'default'

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/669532
推荐阅读
相关标签
  

闽ICP备14008679号