遇见lodash

目录

lodash初识

前沿

lodash是什么?

实际运用

算法举例[剑指 Offer 50. 第一个只出现一次的字符]

防范举例

总结

参考地址


lodash初识

前沿

第一次听到这个技术的时候是在看视频被提到一次,并且使用了其中的防抖和及节流的封装,当时不以为然,直到刷算法时再次遇到使用lodash封装的方法来解题,于是乎决定来了解一番。

lodash是什么?

官方介绍

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

  • Lodash 遵循 MIT 开源协议发布,并且支持最新的运行环境。 查看各个构件版本的区别并选择一个适合你的版本。
  • 问题来了:什么是MIT开源协议?

    • MIT是和BSD一样宽范的许可协议,作者只想保留版权,而无任何其他了限制。也就是说,你必须在你的发行版里包含原许可协议的声明,无论你是以二进制发布的还是以源代码发布的.

个人比较浅显的认识

  • 个人目前的水平理解为这是一个工具库,可以对开发处理开发过程中一些常见的或者繁琐、经典的一些功能,将这些进行封装,用的时候直接开箱即用,对开发效率上提供帮助。

  • 比如:数组、集合、函数、语言、数学逻辑功能、对象、Sep、字符串、一些实用函数、方法、Properties

  • 当然以上仅仅是将官方的目录给罗列出来而已,深入知识还有待探索

实际运用

算法举例[剑指 Offer 50. 第一个只出现一次的字符]

  • 题目

    在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。
    ​
    示例 1:
    ​
    输入:s = "abaccdeff"
    输出:'b'
    示例 2:
    ​
    输入:s = "" 
    输出:' '
    ​
    限制:0 <= s 的长度 <= 50000
    ​
  • 题解

    var firstUniqChar = function(s) {
        const frequency = _.countBy(s);
        for (const [i, ch] of Array.from(s).entries()) {
            if (frequency[ch] === 1) {
                return ch;
            }
        }
        return ' ';
    };

  • 分析

    • _.countBy方法

      _.countBy方法创建一个由键组成的对象,这些键是通过运行iteratee的collection的每个元素的结果生成的。每个 key 的对应值是iteratee返回 key 的次数。
    //比如
    
    var s = "aacb"
    const frequency = _.countBy(s);
    console.log(frequency); // {a: 2, c: 1, b: 1}
    • Array.from(s)

      var s = "aacb"
      const frequency = _.countBy(s);
      console.log(Array.from(s)); 
      //  ['a', 'a', 'c', 'b']

    • entries方法

      //实例
      const object1 = {
        a: 'somestring',
        b: 42
      };
      ​
      for (const [key, value] of Object.entries(object1)) {
        console.log(`${key}: ${value}`);
      }
      ​
      // expected output:
      // "a: somestring"
      // "b: 42"

    了解这些方法后,该题就很容易得到解决了

防范举例

  • 防抖

  • 节流

总结

  • 目前为止对于lodash了解还是有限,里面的方法的使用需要时间去了解并尝试着使用,确实是一个很不错的库

  • 此外引发另一个思考:别人封装好的直接拿来用确实方便,但还是要建立在对当前所引用的有一定了解,里面涉及到的原理该了解还是要了解的,比如这个防抖和节流,算是经典的面试问题了。

  • 相当于:可以不手写,但不能不会。

参考地址

  • 什么是MIT开源协议

  • 剑指 Offer 50. 第一个只出现一次的字符

  • _countBy()方法及更多方法介绍(纯净天空)

  • MDN==>entries

你可能感兴趣的:(js散装笔记,javascript,前端,lodash)