• lodash笔记(数组篇)


    安装引入

    • npm i --save lodash
    • 使用页面
      1、全部引入 import _ from ‘lodash’
      2、按需引入 import x from ‘lodash/x’

    详情见官网


    一、不改变原数组,返回一个新数组

    1、_.chunk(array, [size=1])

    • array (Array): 需要处理的数组
      [size=1] (number): 每个数组区块的长度

    将数组(array)拆分成多个 size 长度的区块,并将这些区块组成一个新数组。 如果array 无法被分割成全部等长的区块,那么最后剩余的元素将组成一个区块。

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

    2、_.compact(array)

    • array (Array): 待处理的数组

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

    _.compact([0, 1, false, 2, '', 3]);
    // => [1, 2, 3]
    
    • 1
    • 2

    3、_.concat(array, [values])

    • array (Array): 被连接的数组。
      [values] (…*): 连接的值。

    创建一个新数组,将array与任何数组 或 值连接在一起。

    var array = [1];
    var other = _.concat(array, 2, [3], [[4]]);
     
    console.log(other);
    // => [1, 2, 3, [4]]
     
    console.log(array);
    // => [1]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    4、_.fromPairs(pairs)
    返回一个由键值对pairs构成的对象。

    _.fromPairs([['fred', 30], ['barney', 40]]);
    // => { 'fred': 30, 'barney': 40 }
    
    • 1
    • 2

    5、_.zipObject([props=[]], [values=[]])

    • [props=[]] (Array): The property identifiers.
      [values=[]] (Array): The property values.

    这个方法类似_.fromPairs,除了它接受2个数组,第一个数组中的值作为属性标识符(属性名),第二个数组中的值作为相应的属性值。

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

    6、_.difference(array, [values])

    • array (Array): 要检查的数组。
      [values] (…Array): 排除的值。

    创建一个具有唯一array值的数组,每个值不包含在其他给定的数组中

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

    7、_.xor([arrays])

    • [arrays] (…Array): 要检查的数组。

    创建一个给定数组唯一值的数组

    _.xor([2, 1, 3, 1, 2])
    // => [2, 1, 3]
    _.xor([2, 1], [2, 3])
    // => [1, 3]
    
    • 1
    • 2
    • 3
    • 4

    8、_.intersection([arrays])
    创建唯一值的数组,这个数组包含所有给定数组都包含的元素

    _.intersection([2, 1], [4, 2], [1, 2]);
    // => [2]
    
    • 1
    • 2

    9、_.uniq(array)
    创建一个去重后的array数组副本。

    _.uniq([2, 1, 2]);
    // => [2, 1]
    
    • 1
    • 2

    10、_.without(array, [values])

    • array (Array): 要检查的数组。
      [values] (…*): 要剔除的值。

    创建一个剔除所有给定值的新数组。
    注意: 不像_.pull, 这个方法会返回一个新数组。

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






    二、改变原数组

    1、_.pull(array, [values])

    • array (Array): 要修改的数组。
      [values] (…*): 要删除的值。

    移除数组array中所有和给定值相等的元素

    var array = [1, 2, 3, 1, 2, 3];
     
    _.pull(array, 2, 3);
    console.log(array);
    // => [1, 1]
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    2、_.pullAll(array, values)

    • array (Array): 要修改的数组。
      values (Array): 要移除值的数组。

    这个方法类似_.pull,区别是这个方法接收一个要移除值的数组

    var array = [1, 2, 3, 1, 2, 3];
     
    _.pullAll(array, [2, 3]);
    console.log(array);
    // => [1, 1]
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3、_.pullAt(array, [indexes])

    • array (Array): 要修改的数组。
      [indexes] (…(number|number[])): 要移除元素的索引。

    根据索引 indexes,移除array中对应的元素,并返回被移除元素的数组。

    var array = [5, 10, 15, 20];
    var evens = _.pullAt(array, 1, 3);
     
    console.log(array);
    // => [5, 15]
     
    console.log(evens);
    // => [10, 20]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

  • 相关阅读:
    自动化测试基础简介(本质)
    算法导论笔记5:贪心算法
    【软考】系统架构设计师-历年论文题目(2013-2022)
    Truenas scale 配置 TrueChart zerotier
    通过git服务提高端侧开发调试效率
    (项目笔记)OpenCV目标检测程序
    linux入门学习21
    看到这个应用上下线方式,不禁感叹:优雅,太优雅了!
    Linux shell编程学习笔记7:只读变量
    牛客网verilog刷题知识点盘点(75道题的版本)
  • 原文地址:https://blog.csdn.net/qq_43388107/article/details/126643028