zoukankan      html  css  js  c++  java
  • 学习笔记:_lodash.js常用函数2

    _.pick(object, [props])

    创建一个从object中选中的属性的对象。

    示例:

    var object = { 'a': 1, 'b': '2', 'c': 3 };
    
    _.pick(object, ['a', 'c']);
    // => { 'a': 1, 'c': 3 }

    _.cloneDeep(value)

    深拷贝value

    示例:

    var objects = [{ 'a': 1 }, { 'b': 2 }];
    
    var deep = _.cloneDeep(objects);
    console.log(deep[0] === objects[0]);
    // => false

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

    遍历集合中的元素,筛选出一个经过predicate检查结果为真值的数组,predicate会传入3个参数:(value, index|key, collection)

    示例:

    var resolve = _.partial(_.map, _, 'user');
    
    var users = [
      { 'user': 'barney', 'age': 36, 'active': true },
      { 'user': 'fred',   'age': 40, 'active': false }
    ];
    
    resolve( _.filter(users, function(o) { return !o.active; }) );
    // => ['fred']
    
    // 使用了 `_.matches` 的回调结果
    resolve( _.filter(users, { 'age': 36, 'active': true }) );
    // => ['barney']
    
    // 使用了 `_.matchesProperty` 的回调结果
    resolve( _.filter(users, ['active', false]) );
    // => ['fred']
    
    // 使用了 `_.property` 的回调结果
    resolve( _.filter(users, 'active') );
    // => ['barney']

    _.partial(func, [partials])

    创建一个函数。该函数调用func,并传入预设的参数,默认以_作为附加部分参数的占位符。

    示例:

    var greet = function(greeting, name) {
      return greeting + ' ' + name;
    };
    
    var sayHelloTo = _.partial(greet, 'hello');
    sayHelloTo('fred');
    // => 'hello fred'
    
    // 使用了占位符
    var greetFred = _.partial(greet, _, 'fred');
    greetFred('hi');
    // => 'hi fred'

    _.get(object, path, [defaultValue])

    根据对象路径获取值。如果解析value是undefined会以defaultValue取代

    示例:

    var object = { 'a': [{ 'b': { 'c': 3 } }] };
    
    _.get(object, 'a[0].b.c');
    // => 3
    
    _.get(object, ['a', '0', 'b', 'c']);
    // => 3
    
    _.get(object, 'a.b.c', 'default');
    // => 'default'

    _isObject(value)

    检查value是否是object的类型(包括arrays, functions, objects, regexes, new Number(0),new String(''))

    示例:

    _.isObject({});
    // => true
    
    _.isObject([1, 2, 3]);
    // => true
    
    _.isObject(_.noop);
    // => true
    
    _.isObject(null);
    // => false

    _.isObjectLike(value)

    检查value是否是类对象。类对象是指typeof结果为“object”的对象,除了null

    示例:

    _.isObjectLike({});
    // => true
    
    _.isObjectLike([1, 2, 3]);
    // => true
    
    _.isObjectLike(_.noop);
    // => false
    
    _.isObjectLike(null);
    // => false

    _.isArray(value)

    检查value是否是Array类对象

    示例:

    _.isArray([1, 2, 3]);
    // => true
    
    _.isArray(document.body.children);
    // => false
    
    _.isArray('abc');
    // => false
    
    _.isArray(_.noop);
    // => false

    _.isArrayLike(value)

    检查value是否是类数组。类数组不能是一个函数,并且value.length是个大于等于0、小于等于Number.MAX_SAFE_INTEGER的整数

    目前我知道的类数组有HTMLCollection、NodeList、arguments

    示例:

    _.isArrayLike([1, 2, 3]);
    // => true
    
    _.isArrayLike(document.body.children);
    // => true
    
    _.isArrayLike('abc');
    // => true
    
    _.isArrayLike(_.noop);
    // => false
  • 相关阅读:
    poj3475
    poj2665
    poj2583
    poj2656
    【API进阶之路】破圈,用一个API代替10人内容团队
    除了方文山,用TA你也能帮周杰伦写歌词了
    敏捷转型谁先动:老总,项目经理or团队
    实战案例丨使用云连接CC和数据复制服务DRS实现跨区域RDS迁移和数据同步
    9块钱,构建个私有网盘,关键不限速
    终端传感了解吗?18个知识点为你扫盲
  • 原文地址:https://www.cnblogs.com/cathy1024/p/11002450.html
Copyright © 2011-2022 走看看