IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 遇见lodash -> 正文阅读

[JavaScript知识库]遇见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了解还是有限,里面的方法的使用需要时间去了解并尝试着使用,确实是一个很不错的库

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

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

参考地址

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-05 11:09:15  更:2022-05-05 11:12:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:28:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码