概念简述

  • lodash 是一个类库
  • Lodash 通过降低 array、number、objects、string 等等的使用难度从而让 JavaScript 变得更简单
  • 用法  let _ = require('lodash')

数组篇

1、_.chunk(array,[size=1]) 切割数组

作用: 讲数组array拆分成多个size长度的区块,并将这些区块组成一个新的数组,

如果array无法分割成等长的区块,那么最后的剩余元素将组成一个区块。

  • 参数 array :需要处理的数组 size=1(number):每个数组区块的长度
  • 返回 (Array):返回一个包含拆分区块的新数组(相当于二维数组)
  • demo
        let _ = require("lodash");
    let arr = [1, 2, 3, 4, 5, 6];
    let arr_result = _.chunk(arr, 2);
    console.log(arr_result);
    //结果[[1,2],[3,4],[5,6]]
    //如果第二个参数要是4则变成 [[1,2,3,4],[5,6]]

    2、 _.compact(array) 刨去假值

  •     let _ = require("lodash");
    let arr = [0, 1, NaN, 2, null, 3, undefined];
    let arr_result = _.compact(arr);
    console.log(arr_result);
    //结果 [1,2,3]

    3、_.concat(array,[values]) 两个数组链接起来

        let _ = require("lodash");
    let arr = [1];
    let arr2 = _.concat(arr, 2, [3], [[4]], { name: "张三" });
    console.log(arr2);
    // 结果 [1, 2, 3, [4], {name: '张三'}]

    4、_.difference(array,[values]) 找出数组中不包含另一个数组中的元素

  • array:要检查的数组
    [values] :要排除的值
  •     let _ = require("lodash");
    let result = _.difference([3, 2, 100], [100, 2]);
    console.log(result);
    //结果就是[3]

    5、_.differenceBy(array,[values],condition)  支持数组对象

  • array:要检查的数组
    [values] :要排除的值
    条件 :他是先把2个数组里面的所有值都执行一遍条件,然后筛选出来
  •     let _ = require("lodash");
    let result = _.differenceBy(
    [{ name: "哈哈" , age: 22}, {name: '哈哈22'}, {name: '哈哈'}, { sex: "男" }], // array
    [{ name: "哈哈" }], // [values]
    "name"
    );
    console.log(result);
    //结果[{name: '哈哈22'},{sex:"男"}]
        let _ = require("lodash");
    let result = _.differenceBy([12, 3, 4], [3, 1], function(item) {
    return item - 4 > 0;
    });
    console.log(result); // [12]
        let _ = require("lodash");
    let result = _.differenceBy([3.1, 4.2, 5.3], [4.6, 5.1], Math.floor);
    console.log(result); // 向下取整后 结果: 3.1

    6、_.drop(array,[n=1]) 从左边开始切割  、_.dropRight(array,[n=1]) 从右边去掉

  •     let _ = require("lodash");
    let arr = [1, 2, 3, 4, 5, 6];
    let arr_result = _.drop(arr, 3);
    console.log(arr_result); //结果: [4,5,6]

    7、_.flattenDeep(array) 回归一维数组

  •     let _ = require("lodash");
    let user = [1, [2, 3, 4, [6, 8, [9, 10]]]];
    let result = _.flattenDeep(user);
    console.log(result);
    //结果就是[1,2,3,4,6,8,9,10];

    8、_.uniq(array) 去重

Lodash数组篇的更多相关文章

  1. PHP学习笔记之数组篇

    摘要:其实PHP中的数组和JavaScript中的数组很相似,就是一系列键值对的集合.... 转载请注明来源:PHP学习笔记之数组篇   一.如何定义数组:在PHP中创建数组主要有两种方式,下面就让我 ...

  2. (2)ES6解构赋值-数组篇

    1.解构赋值-数组篇 //Destrcturing(解构) //ES5 /* var a = 1; var b = 2; var c = 3; */ //ES6 var [a,b,c] = [1,2, ...

  3. 用js来实现那些数据结构(数组篇01)

    在开始正式的内容之前,不得不说说js中的数据类型和数据结构,以及一些比较容易让人混淆的概念.那么为什么要从数组说起?数组在js中是最常见的内存数据结构,数组数据结构在js中拥有很多的方法,很多初学者记 ...

  4. 用js来实现那些数据结构01(数组篇01-数组的增删)

    在开始正式的内容之前,不得不说说js中的数据类型和数据结构,以及一些比较容易让人混淆的概念.那么为什么要从数组说起?数组在js中是最常见的内存数据结构,数组数据结构在js中拥有很多的方法,很多初学者记 ...

  5. LeetCode刷题总结-数组篇(上)

    数组是算法中最常用的一种数据结构,也是面试中最常考的考点.在LeetCode题库中,标记为数组类型的习题到目前为止,已累计到了202题.然而,这202道习题并不是每道题只标记为数组一个考点,大部分习题 ...

  6. LeetCode刷题总结-数组篇(中)

    本文接着上一篇文章<LeetCode刷题总结-数组篇(上)>,继续讲第二个常考问题:矩阵问题. 矩阵也可以称为二维数组.在LeetCode相关习题中,作者总结发现主要考点有:矩阵元素的遍历 ...

  7. LeetCode刷题总结-数组篇(下)

    本期讲O(n)类型问题,共14题.3道简单题,9道中等题,2道困难题.数组篇共归纳总结了50题,本篇是数组篇的最后一篇.其他三个篇章可参考: LeetCode刷题总结-数组篇(上),子数组问题(共17 ...

  8. 【持续更新】leetcode算法-数组篇

    会在近期陆续地完成数组篇的整理,希望对找工作的小伙伴有所帮助.   1.Two Sum:两数相加为一固定值,求其下标.一次遍历数组,用一个hash表存储已经访问过的数及其下标,对于新访问的数value ...

  9. Java之数组篇

    动手动脑,第六次Tutorial--数组 这次的Tutorial讲解了Java中如何进行数组操作,包括数组声明创建使用和赋值运算,写这篇文章的目的就是通过实际运用已达到对数组使用的更加熟练,下面是实践 ...

随机推荐

  1. FWORK-数据存储篇 -- 范式与反模式 (学习和理解)

    理解 1.第二范式的侧重点是非主键列是否完全依赖于主键,还是依赖于主键的一部分.第三范式的侧重点是非主键列是直接依赖于主键,还是直接依赖于非主键列.  2. 反模式 范式可以避免数据冗余,减少数据库的 ...

  2. Hello Activemq

    0. 如果永远是localhost 可能一直low下去 1.下载安装 activemq 1.1 从官网下载activemq.tar.gz 并上传(rz)到linux系统 并解压 tar zxvf /* ...

  3. 洛谷P3952 时间复杂度(模拟)

    题意 题目链接 Sol 咕了一年的题解..就是个模拟吧 考场上写的递归也是醉了... 感觉一年自己进步了不少啊..面向数据编程的能力提高了不少 #include<bits/stdc++.h> ...

  4. 项目经验:GIS<MapWinGIS>建模第六天

    针对管网的暴管发生情况的,关阀分析,能够更快,更及时给施工作人员找到最近需要关停的阀门点,及受影响的管网段,如在这个区域内,还能找到受影响需要停水的用户

  5. 使用github参与到开源项目的维护

    参与到开源项目的维护工作一般分两种,一种是由项目建立者拉入到贡献者列表中,拥有对项目的读写权限,而普通用户对项目仅有读取权限,另一种是fork项目到自己仓库,然后把修改后的内容发送给项目管理者者请求合 ...

  6. react native运行报错

    更换RN项目目录位置后,react-native run-ios,出错. node_modules/react-native/ReactCommon/yoga/yoga/YGNodeList.c 解决 ...

  7. c# 依赖注入之---反射(转)

    详细请看http://www.cnblogs.com/leoo2sk/archive/2009/06/17/1504693.html 定义一个接口,和两个类(实现该接口) IButton: using ...

  8. SQL Server ->> FileTable

    FileTable是SQL Server 2012的新特性之一.它是基于SQL Server 2008的FILESTREAM特性上而来的,允许我们把Windows文件存储在SQL Server中,让S ...

  9. Oracle案例02——ORA-12034: "SCOTT"."USER_TABLE" 上的实体化视图日志比上次刷新后的内容新

    最近同事在交接工作时,发现有几个schedule job没有执行成功,我这边给看了下,其中一个是由于数据库迁移,调用dblink的host主机IP在tnsnames中没有变更导致,还有一个是无法视图的 ...

  10. ppt中调整图片位置

    按方向键时,如果调整的位置过大,可以使用 Ctrl + 方向键.