zoukankan      html  css  js  c++  java
  • 函数式编程 lodash 常用api

    1、forEach

    _.forEach({
                    'a': 1,
                    'b': 2
                }, function(value, key) {
                    console.log(key);
                });
                _.forEach([3,4], function(value) {
                    console.log(value);
                });

    2、filter

    var users = [{
                        'user': 'barney',
                        'age': 36,
                        'active': true
                    },
                    {
                        'user': 'fred',
                        'age': 40,
                        'active': false
                    }
                ];
                var usersNew = _.filter(users, function(o) {
                    return !o.active;
                })
                console.log(usersNew)
                var usersNew2 = _.filter(users, {'active': true })
                console.log(usersNew2)
                var usersNew3 = _.filter(users, ['active', false])
                console.log(usersNew3)
                //active 值为true
                var usersNew4 = _.filter(users, 'active')
                console.log(usersNew4)

    3、random

    _.random([min=0], [max=1], [floating])

    产生一个包括 min 与 max 之间的数。 如果只提供一个参数返回一个0到提供数之间的数。 如果 floating 设为 true,或者 min 或 max 是浮点数,结果返回浮点数。 

    4、深拷贝_.cloneDeep

    5、扩展对象_.assign

    6、去掉对象属性_.omit

    7、从某个对象中选择部分属性组成新的对象  _.pick

    8、排序_.orderBy

     

    var users = [{
                        'user': 'fred',
                        'age': 48
                    },
                    {
                        'user': 'barney',
                        'age': 34
                    },
                    {
                        'user': 'fred',
                        'age': 42
                    },
                    {
                        'user': 'barney',
                        'age': 36
                    }
                ];
    
                console.log(_.orderBy(users, ['age'], ['desc']))

     9 、函数执行N次

    _.times(n, [iteratee=_.identity])

    调用 iteratee N 次,每次调用返回的结果存入到数组中。 iteratee 会传入1个参数:(index)。

     

    console.log(_.times(3, String))

    10、等差数组

    console.log(_.range(0, 20, 5))
                // [0, 5, 10, 15]

    11、isEmpty

     检查 value 是否为空。 判断的依据是除非是有枚举属性的对象,length 大于 0 的 arguments object, array, string 或类jquery选择器。

     12.take

    _.take(array, [n=1])

    从数组的起始元素开始提取 N 个元素。(如可实现分页)

    _.take([1, 2, 3]);
    // => [1]
    
    _.take([1, 2, 3], 2);
    // => [1, 2]
    
    _.take([1, 2, 3], 5);
    // => [1, 2, 3]
    
    _.take([1, 2, 3], 0);
    // => []

     13、

    _.reject(collection, [predicate=_.identity])

    反向版 _.filter,这个方法返回 predicate 检查为非真值的元素。

     14、_.assign

    var a = {
                        a: 1
                    },
                    b = {
                        b: 2
                    },
                    c = {
                        c: 3
                    };
                var d = {};
                var d = _.assign(d, a, b, c);
    
                console.log(a)
                console.log(b)
                console.log(c)
                console.log(d)
  • 相关阅读:
    mariadb
    Linux下安装配置virtualenv与virtualenvwrapper
    配置安装源
    Redis哨兵
    Android 常用工具类之DeviceInfoUtil
    Android 常用工具类之RuntimeUtil
    android 中的几种目录
    listview 滑动以后设置最上面一行为整行展示
    Android 常用工具类之SPUtil,可以修改默认sp文件的路径
    android 在应用中切换语言
  • 原文地址:https://www.cnblogs.com/mengfangui/p/9200515.html
Copyright © 2011-2022 走看看