• lodash笔记(集合篇)


    安装引入

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

    详情见官网


    1、.orderBy(collection, [iteratees=[.identity]], [orders])

    • collection (Array|Object): 用来迭代的集合。
      [iteratees=[_.identity]] (Array[]|Function[]|Object[]|string[]): 排序的迭代函数。
      [orders] (string[]): iteratees迭代函数的排序顺序。

    此方法类似于_.sortBy,除了它允许指定 iteratee(迭代函数)结果如何排序。 如果没指定 orders(排序),所有值以升序排序。 否则,指定为"desc" 降序,或者指定为 “asc” 升序,排序对应值。

    var users = [
      { 'user': 'fred',   'age': 48 },
      { 'user': 'barney', 'age': 34 },
      { 'user': 'fred',   'age': 40 },
      { 'user': 'barney', 'age': 36 }
    ];
     
    // 以 `user` 升序排序 再  `age` 以降序排序。
    _.orderBy(users, ['user', 'age'], ['asc', 'desc']);
    // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    2、.sortBy(collection, [iteratees=[.identity]])

    • collection (Array|Object): 用来迭代的集合。
      [iteratees=[_.identity]] (…(Array|Array[]|Function|Function[]|Object|Object[]|string|string[])): 这个函数决定排序。

    创建一个元素数组。 以 iteratee 处理的结果升序排序。 这个方法执行稳定排序,也就是说相同元素会保持原始排序。 iteratees 调用1个参数: (value)。

    var users = [
      { 'user': 'fred',   'age': 48 },
      { 'user': 'barney', 'age': 36 },
      { 'user': 'fred',   'age': 40 },
      { 'user': 'barney', 'age': 34 }
    ];
     
    _.sortBy(users, function(o) { return o.user; });
    // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]
     
    _.sortBy(users, ['user', 'age']);
    // => objects for [['barney', 34], ['barney', 36], ['fred', 40], ['fred', 48]]
     
    _.sortBy(users, 'user', function(o) {
      return Math.floor(o.age / 10);
    });
    // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    3、_.sample(collection)

    • collection (Array|Object): 要取样的集合。

    从collection(集合)中获得一个随机元素。

    _.sample([1, 2, 3, 4]);
    // => 2
    
    _.sample([{ a: 1 }, { b: 2 }])
    // => {b: 2}
    
    • 1
    • 2
    • 3
    • 4
    • 5

    4、_.sampleSize(collection, [n=1])

    • collection (Array|Object): 要取样的集合。
      [n=1] (number): 取样的元素个数。

    从collection(集合)中获得 n 个随机元素。

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

    5、_.shuffle(collection)

    • collection (Array|Object): 要打乱的集合。

    创建一个被打乱值的集合

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

    6、.some(collection, [predicate=.identity])

    • collection (Array|Object): 用来迭代的集合。
      [predicate=_.identity] (Array|Function|Object|string): 每次迭代调用的函数。

    通过 predicate(断言函数) 检查collection(集合)中的元素是否存在 任意 truthy(真值)的元素,一旦 predicate(断言函数) 返回 truthy(真值),遍历就停止。 predicate 调用3个参数:(value, index|key, collection)。

    _.some([null, 0, 'yes', false], Boolean);
    // => true
     
    var users = [
      { 'user': 'barney', 'active': true },
      { 'user': 'fred',   'active': false }
    ];
     
    // The `_.matches` iteratee shorthand.
    _.some(users, { 'user': 'barney', 'active': false });
    // => false
     
    // The `_.matchesProperty` iteratee shorthand.
    _.some(users, ['active', false]);
    // => true
     
    // The `_.property` iteratee shorthand.
    _.some(users, 'active');
    // => true
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
  • 相关阅读:
    WSL2 Linux内核开发环境搭建
    MySQL之创建高性能的索引和查询性能优化(一)
    【软考架构】2022年架构案例问题总结
    神经网络常见评价指标AUROC(AUC-ROC)、AUPR(AUC-PR)
    Docker-介绍及生命周期
    Golang HTTP编程及源码解析-路由分发
    端到端自动驾驶系列(一):自动驾驶综述解析
    荧光染料CY3/CY5/CY5.5标记TiO2二氧化钛纳米粒|CY5.5-PEG-TiO2
    on java8之封装
    快手、抖音、视频号交战内容付费
  • 原文地址:https://blog.csdn.net/qq_43388107/article/details/126645464