diff --git a/404.html b/404.html index 71859e6..f058f27 100644 --- a/404.html +++ b/404.html @@ -119,7 +119,8 @@
  • xorWith
  • zip
  • zipObject
  • -
  • zipWith
  • +
  • zipObjectDeep
  • +
  • zipWith
  • Chain
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
    • attempt
    • @@ -380,7 +384,6 @@
    • propertyOf
    • range
    • rangeRight
    • -
    • runInContext
    • times
    • toPath
    • uniqueId
    • @@ -392,7 +395,7 @@
      -

      clone source npm

      +

      clone source npm

      _.clone(value)

      创建一个 value 的浅拷贝。 @@ -416,13 +419,10 @@

      返回值 (*)

      返回拷贝后的值

      示例

      -
      var users = [
      -  { 'user': 'barney' },
      -  { 'user': 'fred' }
      -];
      +    
      var objects = [{ 'a': 1 }, { 'b': 2 }];
       
      -var shallow = _.clone(users);
      -console.log(shallow[0] === users[0]);
      +var shallow = _.clone(objects);
      +console.log(shallow[0] === objects[0]);
       // => true
       
      diff --git a/cloneDeep.html b/cloneDeep.html index 4682dfe..2dc5118 100644 --- a/cloneDeep.html +++ b/cloneDeep.html @@ -119,7 +119,8 @@
    • xorWith
    • zip
    • zipObject
    • -
    • zipWith
    • +
    • zipObjectDeep
    • +
    • zipWith
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
    • attempt
    • @@ -380,7 +384,6 @@
    • propertyOf
    • range
    • rangeRight
    • -
    • runInContext
    • times
    • toPath
    • uniqueId
    • @@ -392,7 +395,7 @@
      -

      cloneDeep source npm

      +

      cloneDeep source npm

      _.cloneDeep(value)

      这个方法类似 _.clone,除了它会递归拷贝 value

      @@ -407,13 +410,10 @@

      返回值 (*)

      返回拷贝后的值

      示例

      -
      var users = [
      -  { 'user': 'barney' },
      -  { 'user': 'fred' }
      -];
      +    
      var objects = [{ 'a': 1 }, { 'b': 2 }];
       
      -var deep = _.cloneDeep(users);
      -console.log(deep[0] === users[0]);
      +var deep = _.cloneDeep(objects);
      +console.log(deep[0] === objects[0]);
       // => false
       
      diff --git a/cloneDeepWith.html b/cloneDeepWith.html index 0db35c2..4a17db3 100644 --- a/cloneDeepWith.html +++ b/cloneDeepWith.html @@ -119,7 +119,8 @@
    • xorWith
    • zip
    • zipObject
    • -
    • zipWith
    • +
    • zipObjectDeep
    • +
    • zipWith
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
    • attempt
    • @@ -380,7 +384,6 @@
    • propertyOf
    • range
    • rangeRight
    • -
    • runInContext
    • times
    • toPath
    • uniqueId
    • @@ -392,7 +395,7 @@
      -

      cloneWith source npm

      +

      cloneWith source npm

      _.cloneWith(value, [customizer])

      这个方法类似 _.clone,除了它接受一个 customizer 定制返回的拷贝值。 @@ -417,12 +420,12 @@

      示例

      } } -var el = _.clone(document.body, customizer); +var el = _.cloneWith(document.body, customizer); console.log(el === document.body); // => false console.log(el.nodeName); -// => BODY +// => 'BODY' console.log(el.childNodes.length); // => 0
      diff --git a/compact.html b/compact.html index 5b88fee..f29a363 100644 --- a/compact.html +++ b/compact.html @@ -119,7 +119,8 @@
    • xorWith
    • zip
    • zipObject
    • -
    • zipWith
    • +
    • zipObjectDeep
    • +
    • zipWith
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
    • attempt
    • @@ -380,7 +384,6 @@
    • propertyOf
    • range
    • rangeRight
    • -
    • runInContext
    • times
    • toPath
    • uniqueId
    • @@ -392,10 +395,11 @@
      -

      every source npm

      +

      every source npm

      _.every(collection, [predicate=_.identity])
      -

      通过 predicate 检查集合中的元素是否都返回 真值,只要 predicate 返回一次假值,遍历就停止,并返回 false。
      predicate 会传入3个参数:(value, index|key, collection)

      +

      通过 predicate 检查集合中的元素是否都返回 真值,只要 predicate 返回一次假值,遍历就停止,并返回 false。 +predicate 会传入3个参数:(value, index|key, collection)

      参数

      diff --git a/fill.html b/fill.html index 435a251..05ff194 100644 --- a/fill.html +++ b/fill.html @@ -119,7 +119,8 @@
    • xorWith
    • zip
    • zipObject
    • -
    • zipWith
    • +
    • zipObjectDeep
    • +
    • zipWith
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
    • attempt
    • @@ -380,7 +384,6 @@
    • propertyOf
    • range
    • rangeRight
    • -
    • runInContext
    • times
    • toPath
    • uniqueId
    • @@ -392,11 +395,11 @@
      -

      isMatchWith source npm

      +

      isMatchWith source npm

      _.isMatchWith(object, source, [customizer])

      这个方法类似 _.isMatch。 -除了它接受一个 customizer 定制比较的值。 +除了它接受一个 customizer 定制比较的值。 如果 customizer 返回 undefined 将会比较处理方法代替。 customizer 会传入5个参数:(objValue, srcValue, index|key, object, source)

      diff --git a/isNaN.html b/isNaN.html index 2ff3a21..82a8c83 100644 --- a/isNaN.html +++ b/isNaN.html @@ -119,7 +119,8 @@
    • xorWith
    • zip
    • zipObject
    • -
    • zipWith
    • +
    • zipObjectDeep
    • +
    • zipWith
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
    • attempt
    • @@ -380,7 +384,6 @@
    • propertyOf
    • range
    • rangeRight
    • -
    • runInContext
    • times
    • toPath
    • uniqueId
    • @@ -392,7 +395,7 @@
      -

      join source npm

      +

      join source npm

      _.join(array, [separator=','])

      将数组中的所有元素转换为由 separator 分隔的字符串。

      diff --git a/js/lodash-zh.js b/js/lodash-zh.js index 53a9eff..167efad 100644 --- a/js/lodash-zh.js +++ b/js/lodash-zh.js @@ -1,6 +1,7 @@ /** * @license - * lodash 4.0.0-pre + * lodash 4.0.0 (Custom Build) + * Build: `lodash -d -o ./lodash.js` * Copyright 2012-2016 The Dojo Foundation * Based on Underscore.js 1.8.3 * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors @@ -11,7 +12,7 @@ var undefined; /** Used as the semantic version number. */ - var VERSION = '4.0.0-pre'; + var VERSION = '4.0.0'; /** Used to compose bitmasks for wrapper metadata. */ var BIND_FLAG = 1, @@ -118,6 +119,11 @@ var reRegExpChar = /[\\^$.*+?()[\]{}|]/g, reHasRegExpChar = RegExp(reRegExpChar.source); + /** Used to match leading and trailing whitespace. */ + var reTrim = /^\s+|\s+$/g, + reTrimStart = /^\s+/, + reTrimEnd = /\s+$/; + /** Used to match backslashes in property paths. */ var reEscapeChar = /\\(\\)?/g; @@ -155,27 +161,29 @@ var reUnescapedString = /['\n\r\u2028\u2029\\]/g; /** Used to compose unicode character classes. */ - var rsAstralRange = '\\ud800-\\udfff', - rsComboRange = '\\u0300-\\u036f\\ufe20-\\ufe23', - rsDingbatRange = '\\u2700-\\u27bf', - rsLowerRange = 'a-z\\xdf-\\xf6\\xf8-\\xff', - rsMathOpRange = '\\xac\\xb1\\xd7\\xf7', - rsNonCharRange = '\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf', - rsQuoteRange = '\\u2018\\u2019\\u201c\\u201d', - rsSpaceRange = ' \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000', - rsUpperRange = 'A-Z\\xc0-\\xd6\\xd8-\\xde', - rsVarRange = '\\ufe0e\\ufe0f', - rsBreakRange = rsMathOpRange + rsNonCharRange + rsQuoteRange + rsSpaceRange; + var rsAstralRange = '\\ud800-\\udfff', + rsComboMarksRange = '\\u0300-\\u036f\\ufe20-\\ufe23', + rsComboSymbolsRange = '\\u20d0-\\u20f0', + rsDingbatRange = '\\u2700-\\u27bf', + rsLowerRange = 'a-z\\xdf-\\xf6\\xf8-\\xff', + rsMathOpRange = '\\xac\\xb1\\xd7\\xf7', + rsNonCharRange = '\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf', + rsQuoteRange = '\\u2018\\u2019\\u201c\\u201d', + rsSpaceRange = ' \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000', + rsUpperRange = 'A-Z\\xc0-\\xd6\\xd8-\\xde', + rsVarRange = '\\ufe0e\\ufe0f', + rsBreakRange = rsMathOpRange + rsNonCharRange + rsQuoteRange + rsSpaceRange; /** Used to compose unicode capture groups. */ var rsAstral = '[' + rsAstralRange + ']', rsBreak = '[' + rsBreakRange + ']', - rsCombo = '[' + rsComboRange + ']', + rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']', rsDigits = '\\d+', rsDingbat = '[' + rsDingbatRange + ']', rsLower = '[' + rsLowerRange + ']', rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']', - rsModifier = '(?:\\ud83c[\\udffb-\\udfff])', + rsFitz = '\\ud83c[\\udffb-\\udfff]', + rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')', rsNonAstral = '[^' + rsAstralRange + ']', rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}', rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]', @@ -192,14 +200,17 @@ rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq, rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')'; - /** Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks). */ + /** + * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and + * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols). + */ var reComboMark = RegExp(rsCombo, 'g'); /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */ - var reComplexSymbol = RegExp(rsSymbol + rsSeq, 'g'); + var reComplexSymbol = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g'); /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */ - var reHasComplexSymbol = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']'); + var reHasComplexSymbol = RegExp('[' + rsZWJ + rsAstralRange + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']'); /** Used to match non-compound words composed of alphanumeric characters. */ var reBasicWord = /[a-zA-Z0-9]+/g; @@ -209,7 +220,8 @@ rsUpper + '?' + rsLower + '+(?=' + [rsBreak, rsUpper, '$'].join('|') + ')', rsUpperMisc + '+(?=' + [rsBreak, rsUpper + rsLowerMisc, '$'].join('|') + ')', rsUpper + '?' + rsLowerMisc + '+', - rsDigits + '(?:' + rsLowerMisc + '+)?', + rsUpper + '+', + rsDigits, rsEmoji ].join('|'), 'g'); @@ -222,7 +234,7 @@ 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object', 'Reflect', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array', 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap', '_', - 'clearTimeout', 'isFinite', 'parseFloat', 'parseInt', 'setTimeout' + 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout' ]; /** Used to make template sourceURLs easier to identify. */ @@ -316,6 +328,10 @@ '\u2029': 'u2029' }; + /** Built-in method references without a dependency on `root`. */ + var freeParseFloat = parseFloat, + freeParseInt = parseInt; + /** Detect free variable `exports`. */ var freeExports = (objectTypes[typeof exports] && exports && !exports.nodeType) ? exports : null; @@ -424,11 +440,11 @@ /** * A specialized version of `_.forEach` for arrays without support for - * callback shorthands. + * iteratee shorthands. * * @private * @param {Array} array The array to iterate over. - * @param {Function} iteratee 这个函数会处理每一个元素 + * @param {Function} iteratee The function invoked per iteration. * @returns {Array} Returns `array`. */ function arrayEach (array, iteratee) { @@ -445,11 +461,11 @@ /** * A specialized version of `_.forEachRight` for arrays without support for - * callback shorthands. + * iteratee shorthands. * * @private * @param {Array} array The array to iterate over. - * @param {Function} iteratee 这个函数会处理每一个元素 + * @param {Function} iteratee The function invoked per iteration. * @returns {Array} Returns `array`. */ function arrayEachRight (array, iteratee) { @@ -465,12 +481,12 @@ /** * A specialized version of `_.every` for arrays without support for - * callback shorthands. + * iteratee shorthands. * * @private * @param {Array} array The array to iterate over. - * @param {Function} predicate 这个函数会处理每一个元素 - * @returns {boolean} Returns `true` if all elements pass the predicate check否则返回 `false` + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if all elements pass the predicate check, else `false`. */ function arrayEvery (array, predicate) { var index = -1, @@ -486,11 +502,11 @@ /** * A specialized version of `_.filter` for arrays without support for - * callback shorthands. + * iteratee shorthands. * * @private * @param {Array} array The array to iterate over. - * @param {Function} predicate 这个函数会处理每一个元素 + * @param {Function} predicate The function invoked per iteration. * @returns {Array} Returns the new filtered array. */ function arrayFilter (array, predicate) { @@ -514,8 +530,8 @@ * * @private * @param {Array} array The array to search. - * @param {*} target 要检索的值 - * @returns {boolean} Returns `true` if `target` is found否则返回 `false` + * @param {*} target The value to search for. + * @returns {boolean} Returns `true` if `target` is found, else `false`. */ function arrayIncludes (array, value) { return !!array.length && baseIndexOf(array, value, 0) > -1; @@ -527,9 +543,9 @@ * * @private * @param {Array} array The array to search. - * @param {*} target 要检索的值 - * @param {Function} comparator 这个函数会处理每一个元素 - * @returns {boolean} Returns `true` if `target` is found否则返回 `false` + * @param {*} target The value to search for. + * @param {Function} comparator The comparator invoked per element. + * @returns {boolean} Returns `true` if `target` is found, else `false`. */ function arrayIncludesWith (array, value, comparator) { var index = -1, @@ -544,12 +560,12 @@ } /** - * A specialized version of `_.map` for arrays without support for callback + * A specialized version of `_.map` for arrays without support for iteratee * shorthands. * * @private * @param {Array} array The array to iterate over. - * @param {Function} iteratee 这个函数会处理每一个元素 + * @param {Function} iteratee The function invoked per iteration. * @returns {Array} Returns the new mapped array. */ function arrayMap (array, iteratee) { @@ -584,20 +600,20 @@ /** * A specialized version of `_.reduce` for arrays without support for - * callback shorthands. + * iteratee shorthands. * * @private * @param {Array} array The array to iterate over. - * @param {Function} iteratee 这个函数会处理每一个元素 + * @param {Function} iteratee The function invoked per iteration. * @param {*} [accumulator] The initial value. - * @param {boolean} [initFromArray] Specify 使用 first element of `array` as the initial value. + * @param {boolean} [initAccum] Specify using the first element of `array` as the initial value. * @returns {*} Returns the accumulated value. */ - function arrayReduce (array, iteratee, accumulator, initFromArray) { + function arrayReduce (array, iteratee, accumulator, initAccum) { var index = -1, length = array.length; - if (initFromArray && length) { + if (initAccum && length) { accumulator = array[++index]; } while (++index < length) { @@ -608,18 +624,18 @@ /** * A specialized version of `_.reduceRight` for arrays without support for - * callback shorthands. + * iteratee shorthands. * * @private * @param {Array} array The array to iterate over. - * @param {Function} iteratee 这个函数会处理每一个元素 + * @param {Function} iteratee The function invoked per iteration. * @param {*} [accumulator] The initial value. - * @param {boolean} [initFromArray] Specify 使用 last element of `array` as the initial value. + * @param {boolean} [initAccum] Specify using the last element of `array` as the initial value. * @returns {*} Returns the accumulated value. */ - function arrayReduceRight (array, iteratee, accumulator, initFromArray) { + function arrayReduceRight (array, iteratee, accumulator, initAccum) { var length = array.length; - if (initFromArray && length) { + if (initAccum && length) { accumulator = array[--length]; } while (length--) { @@ -629,13 +645,13 @@ } /** - * A specialized version of `_.some` for arrays without support for callback + * A specialized version of `_.some` for arrays without support for iteratee * shorthands. * * @private * @param {Array} array The array to iterate over. - * @param {Function} predicate 这个函数会处理每一个元素 - * @returns {boolean} Returns `true` if any element passes the predicate check否则返回 `false` + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if any element passes the predicate check, else `false`. */ function arraySome (array, predicate) { var index = -1, @@ -680,12 +696,12 @@ /** * The base implementation of methods like `_.find` and `_.findKey`, without - * support for callback shorthands, which iterates over `collection` using - * the provided `eachFunc`. + * support for iteratee shorthands, which iterates over `collection` using + * `eachFunc`. * * @private - * @param {Array|Object} collection 要检索的集合 - * @param {Function} predicate 这个函数会处理每一个元素 + * @param {Array|Object} collection The collection to search. + * @param {Function} predicate The function invoked per iteration. * @param {Function} eachFunc The function to iterate over `collection`. * @param {boolean} [retKey] Specify returning the key of the found element instead of the element itself. * @returns {*} Returns the found element or its key, else `undefined`. @@ -703,11 +719,11 @@ /** * The base implementation of `_.findIndex` and `_.findLastIndex` without - * support for callback shorthands. + * support for iteratee shorthands. * * @private * @param {Array} array The array to search. - * @param {Function} predicate 这个函数会处理每一个元素 + * @param {Function} predicate The function invoked per iteration. * @param {boolean} [fromRight] Specify iterating from right to left. * @returns {number} Returns the index of the matched value, else `-1`. */ @@ -728,7 +744,7 @@ * * @private * @param {Array} array The array to search. - * @param {*} value 要检索的值 + * @param {*} value The value to search for. * @param {number} fromIndex The index to search from. * @returns {number} Returns the index of the matched value, else `-1`. */ @@ -749,21 +765,20 @@ /** * The base implementation of `_.reduce` and `_.reduceRight`, without support - * for callback shorthands, which iterates over `collection` 使用 provided - * `eachFunc`. + * for iteratee shorthands, which iterates over `collection` using `eachFunc`. * * @private - * @param {Array|Object} collection 需要遍历的集合 - * @param {Function} iteratee 这个函数会处理每一个元素 + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. * @param {*} accumulator The initial value. - * @param {boolean} initFromCollection Specify 使用 first or last element of `collection` as the initial value. + * @param {boolean} initAccum Specify using the first or last element of `collection` as the initial value. * @param {Function} eachFunc The function to iterate over `collection`. * @returns {*} Returns the accumulated value. */ - function baseReduce (collection, iteratee, accumulator, initFromCollection, eachFunc) { + function baseReduce (collection, iteratee, accumulator, initAccum, eachFunc) { eachFunc(collection, function (value, index, collection) { - accumulator = initFromCollection - ? (initFromCollection = false, value) + accumulator = initAccum + ? (initAccum = false, value) : iteratee(accumulator, value, index, collection); }); return accumulator; @@ -790,11 +805,11 @@ } /** - * The base implementation of `_.sum` without support for callback shorthands. + * The base implementation of `_.sum` without support for iteratee shorthands. * * @private * @param {Array} array The array to iterate over. - * @param {Function} iteratee 这个函数会处理每一个元素 + * @param {Function} iteratee The function invoked per iteration. * @returns {number} Returns the sum. */ function baseSum (array, iteratee) { @@ -812,12 +827,12 @@ } /** - * The base implementation of `_.times` without support for callback shorthands + * The base implementation of `_.times` without support for iteratee shorthands * or max array length checks. * * @private * @param {number} n The number of times to invoke `iteratee`. - * @param {Function} iteratee 这个函数会处理每一个元素 + * @param {Function} iteratee The function invoked per iteration. * @returns {Array} Returns the array of results. */ function baseTimes (n, iteratee) { @@ -835,7 +850,7 @@ * of key-value pairs for `object` corresponding to the property names of `props`. * * @private - * @param {Object} object 要检索的对象 + * @param {Object} object The object to query. * @param {Array} props The property names to get values for. * @returns {Object} Returns the new array of key-value pairs. */ @@ -845,26 +860,12 @@ }); } - /** - * The base implementation of `_.trim` without support trimming non-whitespace - * characters. - * - * @private - * @param {string} string 要处理的字符串 - * @returns {string} 返回处理后的字符串 - */ - function baseTrim (string) { - return string - ? string.slice(trimmedStartIndex(string), trimmedEndIndex(string) + 1) - : string; - } - /** * The base implementation of `_.unary` without support for storing wrapper metadata. * * @private * @param {Function} func The function to cap arguments for. - * @returns {Function} 返回新的函数 + * @returns {Function} Returns the new function. */ function baseUnary (func) { return function (value) { @@ -878,7 +879,7 @@ * of `props`. * * @private - * @param {Object} object 要检索的对象 + * @param {Object} object The object to query. * @param {Array} props The property names to get values for. * @returns {Object} Returns the array of property values. */ @@ -924,10 +925,10 @@ } /** - * 检查 `value` 是否是 a global object. + * Checks if `value` is a global object. * * @private - * @param {*} value 要检查的值 + * @param {*} value The value to check. * @returns {null|Object} Returns `value` if it's a global object, else `null`. */ function checkGlobal (value) { @@ -938,8 +939,8 @@ * Compares values to sort them in ascending order. * * @private - * @param {*} value 要比较的值 - * @param {*} other 其他要比较的值 + * @param {*} value The value to compare. + * @param {*} other The other value to compare. * @returns {number} Returns the sort order indicator for `value`. */ function compareAscending (value, other) { @@ -1000,10 +1001,10 @@ // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications // that causes it, under certain circumstances, to provide the same value for // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247 - // 了解详情 + // for more details. // // This also ensures a stable sort in V8 and other engines. - // See https://code.google.com/p/v8/issues/detail?id=90 了解详情 + // See https://code.google.com/p/v8/issues/detail?id=90 for more details. return object.index - other.index; } @@ -1063,11 +1064,11 @@ } /** - * 检查 `value` 是否是 a host object in IE < 9. + * Checks if `value` is a host object in IE < 9. * * @private - * @param {*} value 要检查的值 - * @returns {boolean} Returns `true` if `value` is a host object否则返回 `false` + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a host object, else `false`. */ function isHostObject (value) { // Many host objects are `Object` objects that can coerce to strings @@ -1083,12 +1084,12 @@ } /** - * 检查 `value` 是否是 a valid array-like index. + * Checks if `value` is a valid array-like index. * * @private - * @param {*} value 要检查的值 + * @param {*} value The value to check. * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. - * @returns {boolean} Returns `true` if `value` is a valid index否则返回 `false` + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. */ function isIndex (value, length) { value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1; @@ -1096,19 +1097,6 @@ return value > -1 && value % 1 == 0 && value < length; } - /** - * Used by `trimmedStartIndex` and `trimmedEndIndex` to determine if a - * character code is whitespace. - * - * @private - * @param {number} charCode The character code to inspect. - * @returns {boolean} Returns `true` if `charCode` is whitespace否则返回 `false` - */ - function isSpace (charCode) { - return ((charCode <= 160 && (charCode >= 9 && charCode <= 13) || charCode == 32 || charCode == 160) || charCode == 5760 || charCode == 6158 || - (charCode >= 8192 && (charCode <= 8202 || charCode == 8232 || charCode == 8233 || charCode == 8239 || charCode == 8287 || charCode == 12288 || charCode == 65279))); - } - /** * Converts `iterator` to an array. * @@ -1185,10 +1173,11 @@ } /** - * 获得字符串的长度 + * Gets the number of symbols in `string`. * - * @param {string} string 要处理的字符串 - * @returns {number} 返回字符串长度 + * @private + * @param {string} string The string to inspect. + * @returns {number} Returns the string size. */ function stringSize (string) { if (!(string && reHasComplexSymbol.test(string))) { @@ -1205,46 +1194,13 @@ * Converts `string` to an array. * * @private - * @param {string} string 要转换的字符串 + * @param {string} string The string to convert. * @returns {Array} Returns the converted array. */ function stringToArray (string) { return string.match(reComplexSymbol); } - /** - * Used by `_.trim` and `_.trimStart` to get the index of the first non-whitespace - * character of `string`. - * - * @private - * @param {string} string The string to inspect. - * @returns {number} Returns the index of the first non-whitespace character. - */ - function trimmedStartIndex (string) { - var index = -1, - length = string.length; - - while (++index < length && isSpace(string.charCodeAt(index))) { - } - return index; - } - - /** - * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace - * character of `string`. - * - * @private - * @param {string} string The string to inspect. - * @returns {number} Returns the index of the last non-whitespace character. - */ - function trimmedEndIndex (string) { - var index = string.length; - - while (index-- && isSpace(string.charCodeAt(index))) { - } - return index; - } - /** * Used by `_.unescape` to convert HTML entities to characters. * @@ -1263,7 +1219,7 @@ * * @static * @memberOf _ - * @category Utility + * @category Util * @param {Object} [context=root] 上下文对象 * @returns {Function} 返回新的 `lodash` 对象 * @example @@ -1305,8 +1261,7 @@ /** Used for built-in method references. */ var arrayProto = context.Array.prototype, - objectProto = context.Object.prototype, - stringProto = context.String.prototype; + objectProto = context.Object.prototype; /** Used to resolve the decompiled source of functions. */ var funcToString = context.Function.prototype.toString; @@ -1344,8 +1299,6 @@ getPrototypeOf = Object.getPrototypeOf, getOwnPropertySymbols = Object.getOwnPropertySymbols, iteratorSymbol = typeof (iteratorSymbol = Symbol && Symbol.iterator) == 'symbol' ? iteratorSymbol : undefined, - parseFloat = context.parseFloat, - pow = Math.pow, propertyIsEnumerable = objectProto.propertyIsEnumerable, setTimeout = context.setTimeout, splice = arrayProto.splice; @@ -1435,7 +1388,7 @@ * `toLower`, `toInteger`, `toLength`, `toNumber`, `toSafeInteger`, toString`, * `toUpper`, `trim`, `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, * `upperCase`, `upperFirst`, `value`, 以及 `words` - * + * * 支持 链式调用 的方法: * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, * `at`, `before`, `bind`, `bindAll`, `bindKey`, `chain`, `chunk`, `commit`, @@ -1443,9 +1396,8 @@ * `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`, `difference`, * `differenceBy`, `differenceWith`, `drop`, `dropRight`, `dropRightWhile`, * `dropWhile`, `fill`, `filter`, `flatten`, `flattenDeep`, `flip`, `flow`, - * `flowRight`, `forEach`, `forEachRight`, `forIn`, `forInRight`, `forOwn`, - * `forOwnRight`, `fromPairs`, `functions`, `functionsIn`, `groupBy`, `initial`, - * `intersection`, `intersectionBy`, `intersectionWith`, invert`, `invokeMap`, + * `flowRight`, `fromPairs`, `functions`, `functionsIn`, `groupBy`, `initial`, + * `intersection`, `intersectionBy`, `intersectionWith`, `invert`, `invokeMap`, * `iteratee`, `keyBy`, `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, * `matches`, `matchesProperty`, `memoize`, `merge`, `mergeWith`, `method`, * `methodOf`, `mixin`, `negate`, `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, @@ -1459,7 +1411,7 @@ * `unary`, `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, * `unset`, `unshift`, `unzip`, `unzipWith`, `values`, `valuesIn`, `without`, * `wrap`, `xor`, `xorBy`, `xorWith`, `zip`, `zipObject`, 以及 zipWith      - + * @name _ * @constructor * @category Chain @@ -2200,6 +2152,27 @@ return result; } + /** + * The base implementation of `_.clamp` which doesn't coerce arguments to numbers. + * + * @private + * @param {number} number The number to clamp. + * @param {number} [lower] The lower bound. + * @param {number} upper The upper bound. + * @returns {number} Returns the clamped number. + */ + function baseClamp (number, lower, upper) { + if (number === number) { + if (upper !== undefined) { + number = number <= upper ? number : upper; + } + if (lower !== undefined) { + number = number >= lower ? number : lower; + } + } + return number; + } + /** * The base implementation of `_.clone` and `_.cloneDeep` which tracks * traversed objects. @@ -2271,7 +2244,7 @@ * @returns {Function} 返回新的函数 */ function baseConforms (source) { - var props = keys(source), + var props = keys(source), length = props.length; return function (object) { @@ -2482,7 +2455,7 @@ * @param {Object} [stack] Tracks traversed arrays. * @returns {Array} Returns the new flattened array. */ - function baseFlatten (array, isDeep, isStrict, result, stack) { + function baseFlatten (array, isDeep, isStrict, result) { result || (result = []); var index = -1, @@ -2493,18 +2466,9 @@ if (isArrayLikeObject(value) && (isStrict || isArray(value) || isArguments(value))) { if (isDeep) { - stack || (stack = new Stack); - if (stack.get(array)) { - return result; - } - stack.set(array, true); - // Recursively flatten arrays (susceptible to call stack limits). - baseFlatten(value, isDeep, isStrict, result, stack); - - stack['delete'](array); - } - else { + baseFlatten(value, isDeep, isStrict, result); + } else { arrayPush(result, value); } } else if (!isStrict) { @@ -2794,19 +2758,8 @@ if (!isSameTag) { return false; } - // Assume cyclic values are equal. - // For more information on detecting circular references see https://es5.github.io/#JO. stack || (stack = new Stack); - var stacked = stack.get(object); - if (stacked) { - return stacked == other; - } - stack.set(object, other); - - var result = (objIsArr ? equalArrays : equalObjects)(object, other, equalFunc, customizer, bitmask, stack); - - stack['delete'](object); - return result; + return (objIsArr ? equalArrays : equalObjects)(object, other, equalFunc, customizer, bitmask, stack); } /** @@ -2990,7 +2943,7 @@ * @param {Function} [customizer] The function to customize merged values. * @param {Object} [stack] Tracks traversed source values and their merged counterparts. */ - function baseMerge (object, source, customizer, stack) { + function baseMerge (object, source, srcIndex, customizer, stack) { if (object === source) { return; } @@ -3002,7 +2955,7 @@ } if (isObject(srcValue)) { stack || (stack = new Stack); - baseMergeDeep(object, source, key, baseMerge, customizer, stack); + baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); } else { var newValue = customizer ? customizer(object[key], srcValue, (key + ''), object, source, stack) : undefined; @@ -3027,7 +2980,7 @@ * @param {Function} [customizer] The function to customize assigned values. * @param {Object} [stack] Tracks traversed source values and their merged counterparts. */ - function baseMergeDeep (object, source, key, mergeFunc, customizer, stack) { + function baseMergeDeep (object, source, key, srcIndex, mergeFunc, customizer, stack) { var objValue = object[key], srcValue = source[key], stacked = stack.get(srcValue) || stack.get(objValue); @@ -3042,17 +2995,29 @@ if (isCommon) { newValue = srcValue; if (isArray(srcValue) || isTypedArray(srcValue)) { - newValue = isArray(objValue) - ? objValue - : ((isArrayLikeObject(objValue)) ? copyArray(objValue) : baseClone(srcValue)); + if (isArray(objValue)) { + newValue = srcIndex ? copyArray(objValue) : objValue; + } + else if (isArrayLikeObject(objValue)) { + newValue = copyArray(objValue); + } + else { + newValue = baseClone(srcValue); + } } else if (isPlainObject(srcValue) || isArguments(srcValue)) { - newValue = isArguments(objValue) - ? toPlainObject(objValue) - : (isObject(objValue) ? objValue : baseClone(srcValue)); + if (isArguments(objValue)) { + newValue = toPlainObject(objValue); + } + else if (!isObject(objValue) || (srcIndex && isFunction(objValue))) { + newValue = baseClone(srcValue); + } + else { + newValue = srcIndex ? baseClone(objValue) : objValue; + } } else { - isCommon = isFunction(srcValue); + isCommon = false; } } stack.set(srcValue, newValue); @@ -3123,7 +3088,7 @@ function basePickBy (object, predicate) { var result = {}; baseForIn(object, function (value, key) { - if (predicate(value)) { + if (predicate(value, key)) { result[key] = value; } }); @@ -3248,8 +3213,8 @@ * @param {number} max The maximum possible value. * @returns {number} Returns the random number. */ - function baseRandom (min, max) { - return min + nativeFloor(nativeRandom() * (max - min + 1)); + function baseRandom (lower, upper) { + return lower + nativeFloor(nativeRandom() * (upper - lower + 1)); } /** @@ -3263,17 +3228,6 @@ * @returns {Array} Returns the new array of numbers. */ function baseRange (start, end, step, fromRight) { - start = toNumber(start); - start = start === start ? start : 0; - - if (end === undefined) { - end = start; - start = 0; - } else { - end = toNumber(end) || 0; - } - step = step === undefined ? (start < end ? 1 : -1) : (toNumber(step) || 0); - var index = -1, length = nativeMax(nativeCeil((end - start) / (step || 1)), 0), result = Array(length); @@ -3347,11 +3301,10 @@ var index = -1, length = array.length; - start = start == null ? 0 : toInteger(start); if (start < 0) { start = -start > length ? 0 : (length + start); } - end = (end === undefined || end > length) ? length : toInteger(end); + end = end > length ? length : end; if (end < 0) { end += length; } @@ -3659,6 +3612,27 @@ return (result && result.length) ? baseUniq(result, iteratee, comparator) : []; } + /** + * This base implementation of `_.zipObject` which assigns values using `assignFunc`. + * + * @private + * @param {Array} props The property names. + * @param {Array} values The property values. + * @param {Function} assignFunc The function to assign values. + * @returns {Object} Returns the new object. + */ + function baseZipObject (props, values, assignFunc) { + var index = -1, + length = props.length, + valsLength = values.length, + result = {}; + + while (++index < length) { + assignFunc(result, props[index], index < valsLength ? values[index] : undefined); + } + return result; + } + /** * Creates a clone of `buffer`. * @@ -3722,7 +3696,7 @@ * @returns {Object} Returns the cloned symbol object. */ function cloneSymbol (symbol) { - return Object(symbolValueOf.call(symbol)); + return Symbol ? Object(symbolValueOf.call(symbol)) : {}; } /** @@ -3912,7 +3886,7 @@ function createAssigner (assigner) { return rest(function (object, sources) { var index = -1, - length = object == null ? 0 : sources.length, + length = sources.length, customizer = length > 1 ? sources[length - 1] : undefined, guard = length > 2 ? sources[2] : undefined; @@ -3925,7 +3899,7 @@ while (++index < length) { var source = sources[index]; if (source) { - assigner(object, source, customizer); + assigner(object, source, index, customizer); } } return object; @@ -4323,6 +4297,32 @@ return wrapper; } + /** + * Creates a `_.range` or `_.rangeRight` function. + * + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new range function. + */ + function createRange (fromRight) { + return function (start, end, step) { + if (step && typeof step != 'number' && isIterateeCall(start, end, step)) { + end = step = undefined; + } + // Ensure the sign of `-0` is preserved. + start = toNumber(start); + start = start === start ? start : 0; + if (end === undefined) { + end = start; + start = 0; + } else { + end = toNumber(end) || 0; + } + step = step === undefined ? (start < end ? 1 : -1) : (toNumber(step) || 0); + return baseRange(start, end, step, fromRight); + }; + } + /** * Creates a function that wraps `func` to continue currying. * @@ -4377,7 +4377,7 @@ precision = toInteger(precision); if (precision) { // Shift with exponential notation to avoid floating-point issues. - // See [MDN](https://mdn.io/round#Examples) 了解详情 + // See [MDN](https://mdn.io/round#Examples) for more details. var pair = (toString(number) + 'e').split('e'), value = func(pair[0] + 'e' + (+pair[1] + precision)); @@ -4498,34 +4498,46 @@ if (arrLength != othLength && !(isPartial && othLength > arrLength)) { return false; } + // Assume cyclic values are equal. + var stacked = stack.get(array); + if (stacked) { + return stacked == other; + } + var result = true; + stack.set(array, other); + // Ignore non-index properties. while (++index < arrLength) { var arrValue = array[index], othValue = other[index]; if (customizer) { - var result = isPartial + var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack); } - if (result !== undefined) { - if (result) { + if (compared !== undefined) { + if (compared) { continue; } - return false; + result = false; + break; } // Recursively compare arrays (susceptible to call stack limits). if (isUnordered) { if (!arraySome(other, function (othValue) { return arrValue === othValue || equalFunc(arrValue, othValue, customizer, bitmask, stack); })) { - return false; + result = false; + break; } } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, customizer, bitmask, stack))) { - return false; + result = false; + break; } } - return true; + stack['delete'](array); + return result; } /** @@ -4568,7 +4580,7 @@ case regexpTag: case stringTag: // Coerce regexes to strings and treat strings primitives and string - // objects as equal. See https://es5.github.io/#x15.10.6.4 了解详情 + // objects as equal. See https://es5.github.io/#x15.10.6.4 for more details. return object == (other + ''); case mapTag: @@ -4583,7 +4595,7 @@ equalFunc(convert(object), convert(other), customizer, bitmask | UNORDERED_COMPARE_FLAG); case symbolTag: - return symbolValueOf.call(object) == symbolValueOf.call(other); + return !!Symbol && (symbolValueOf.call(object) == symbolValueOf.call(other)); } return false; } @@ -4602,12 +4614,11 @@ * @returns {boolean} Returns `true` if the objects are equivalent否则返回 `false` */ function equalObjects (object, other, equalFunc, customizer, bitmask, stack) { - var isPartial = bitmask & PARTIAL_COMPARE_FLAG, - isUnordered = bitmask & UNORDERED_COMPARE_FLAG, - objProps = keys(object), - objLength = objProps.length, - othProps = keys(other), - othLength = othProps.length; + var isPartial = bitmask & PARTIAL_COMPARE_FLAG, + objProps = keys(object), + objLength = objProps.length, + othProps = keys(other), + othLength = othProps.length; if (objLength != othLength && !isPartial) { return false; @@ -4615,10 +4626,18 @@ var index = objLength; while (index--) { var key = objProps[index]; - if (!(isPartial ? key in other : baseHas(other, key)) || !(isUnordered || key == othProps[index])) { + if (!(isPartial ? key in other : baseHas(other, key))) { return false; } } + // Assume cyclic values are equal. + var stacked = stack.get(object); + if (stacked) { + return stacked == other; + } + var result = true; + stack.set(object, other); + var skipCtor = isPartial; while (++index < objLength) { key = objProps[index]; @@ -4626,20 +4645,21 @@ othValue = other[key]; if (customizer) { - var result = isPartial + var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack); } // Recursively compare objects (susceptible to call stack limits). - if (!(result === undefined + if (!(compared === undefined ? (objValue === othValue || equalFunc(objValue, othValue, customizer, bitmask, stack)) - : result + : compared )) { - return false; + result = false; + break; } skipCtor || (skipCtor = key == 'constructor'); } - if (!skipCtor) { + if (result && !skipCtor) { var objCtor = object.constructor, othCtor = other.constructor; @@ -4647,10 +4667,11 @@ if (objCtor != othCtor && ('constructor' in object && 'constructor' in other) && !(typeof objCtor == 'function' && objCtor instanceof objCtor && typeof othCtor == 'function' && othCtor instanceof othCtor)) { - return false; + result = false; } } - return true; + stack['delete'](object); + return result; } /** @@ -4674,7 +4695,7 @@ function getFuncName (func) { var result = (func.name + ''), array = realNames[result], - length = array ? array.length : 0; + length = hasOwnProperty.call(realNames, result) ? array.length : 0; while (length--) { var data = array[length], @@ -5129,9 +5150,9 @@ function mergeDefaults (objValue, srcValue, key, object, source, stack) { if (isObject(objValue) && isObject(srcValue)) { stack.set(srcValue, objValue); - baseMerge(objValue, srcValue, mergeDefaults, stack); + baseMerge(objValue, srcValue, undefined, mergeDefaults, stack); } - return objValue === undefined ? baseClone(srcValue) : objValue; + return objValue; } /** @@ -5329,7 +5350,7 @@ * @memberOf _ * @category Array * @param {Array} array 需要被连接的数组 - * @param {...*} [values] 需要被连接的值的队列 + * @param {...*} [values] 需要被连接的值的队列 * @returns {Array} 返回连接后的新数组 * @example * @@ -5343,8 +5364,11 @@ * // => [1] */ var concat = rest(function (array, values) { + if (!isArray(array)) { + array = array == null ? [] : [Object(array)]; + } values = baseFlatten(values); - return arrayConcat(isArray(array) ? array : [Object(array)], values); + return arrayConcat(array, values); }); /** @@ -5448,11 +5472,12 @@ * // => [1, 2, 3] */ function drop (array, n, guard) { - if (!(array && array.length)) { + var length = array ? array.length : 0; + if (!length) { return []; } - n = (guard || n === undefined) ? 1 : n; - return baseSlice(array, n < 0 ? 0 : n); + n = (guard || n === undefined) ? 1 : toInteger(n); + return baseSlice(array, n < 0 ? 0 : n, length); } /** @@ -5610,7 +5635,7 @@ /** * 这个方法类似 `_.find`。除了它返回最先通过 `predicate` 判断为真值的元素的 index ,而不是元素本身。 - * + * * @static * @memberOf _ * @category Array @@ -5761,8 +5786,8 @@ result = {}; while (++index < length) { - var pair = pairs[index]; - baseSet(result, pair[0], pair[1]); + var pair = pairs[index]; + result[pair[0]] = pair[1]; } return result; } @@ -5965,9 +5990,9 @@ * @param {Array} array 需要检索的数组 * @param {*} value 要检索的值 * @param {number} [fromIndex=array.length-1] 检索 index 的起点 - * + * * @returns {number} 返回匹配元素的 index,否则返回 -1 - * + * * @example * * _.lastIndexOf([1, 2, 1, 2], 2); @@ -6080,7 +6105,7 @@ * @category Array * @param {Array} array 需要调整的数组 * @param {...(number|number[])} [indexes] indexes 可以是特殊的数组队列,或者个别的单个或多个参数 - * + * * @returns {Array} 返回被移除的元素数组 * @example * @@ -6170,7 +6195,7 @@ /** * 创建一个裁剪后的数组,从 start 到 end 的位置,但不包括 end 本身的位置。 - * + * * **注意:** 这个方法用于代替 [`Array#slice`](https://mdn.io/Array/slice) * 来确保数组正确返回 * @@ -6203,7 +6228,7 @@ * @param {Array} array 需要检索的已排序数组 * @param {*} value 要评估位置的值 * @returns {number} 返回 value 应该在数组中插入的 index。 - * + * * @example * * _.sortedIndex([30, 50], 40); @@ -6576,7 +6601,7 @@ /** * 这个方法类似 `_.union`, -* 除了它接受一个 comparator 调用每一个数组元素的值。 comparator 会传入2个参数:(arrVal, othVal)。 + * 除了它接受一个 comparator 调用每一个数组元素的值。 comparator 会传入2个参数:(arrVal, othVal)。 * * @static * @memberOf _ @@ -6841,33 +6866,49 @@ * @returns {Object} 返回一个新的对象 * @example * - * _.zipObject(['fred', 'barney'], [30, 40]); - * // => { 'fred': 30, 'barney': 40 } + * _.zipObject(['a', 'b'], [1, 2]); + * // => { 'a': 1, 'b': 2 } */ function zipObject (props, values) { - var index = -1, - length = props ? props.length : 0, - valsLength = values ? values.length : 0, - result = {}; + return baseZipObject(props || [], values || [], assignValue); + } - while (++index < length) { - baseSet(result, props[index], index < valsLength ? values[index] : undefined); - } - return result; + /** + * + * 这个方法类似 `_.zipObject`,除了支持属性路径。 + * This method is like `_.zipObject` except that it supports property paths. + * + * @static + * @memberOf _ + * @category Array + * @param {Array} [props=[]] 属性名 + * @param {Array} [values=[]] 属性值 + * @returns {Object} 返回新的对象 + * @example + * + * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]); + * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } } + */ + function zipObjectDeep (props, values) { + return baseZipObject(props || [], values || [], baseSet); } /** - * 这个方法类似 `_.zip`,除了它接受一个 iteratee 决定如何重组值。iteratee 会传入4个参数:(accumulator, value, index, group)。每组的第一个元素作为初始化的值 + * 这个方法类似 _.zip, + * 除了它接受一个 iteratee 决定如何重组值。 + * iteratee 会调用每一组元素。 * * @static * @memberOf _ * @category Array * @param {...Array} [arrays] 要处理的数组队列 - * @param {Function} [iteratee=_.identity] 这个函数决定如何重组值 + * @param {Function} [iteratee=_.identity]这个函数决定如何重组值 * @returns {Array} 返回一个打包后的数组 * @example * - * _.zipWith([1, 2], [10, 20], [100, 200], _.add); + * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) { + * return a + b + c; + * }); * // => [111, 222] */ var zipWith = rest(function (arrays) { @@ -7084,7 +7125,7 @@ /** * 获得包装对象的下一个值,遵循 [iterator 协议](https://mdn.io/iteration_protocols#iterator)。 - * + * * * @name next * @memberOf _ @@ -7251,7 +7292,7 @@ }); /** - * 通过 `predicate` 检查集合中的元素是否都返回 真值,只要 `predicate` 返回一次假值,遍历就停止,并返回 false。 + * 通过 `predicate` 检查集合中的元素是否都返回 真值,只要 `predicate` 返回一次假值,遍历就停止,并返回 false。 * `predicate` 会传入3个参数:(value, index|key, collection) * * @static @@ -7490,7 +7531,7 @@ * @param {number} [fromIndex=0] 要检索的 index 位置 * @param- {Object} [guard] Enables use as an iteratee for functions like `_.reduce`. * @returns {boolean} 如果找到 value 返回 ture, 否则返回 false。 - * + * * @example * * _.includes([1, 2, 3], 1); @@ -7745,10 +7786,10 @@ * // => { '1': ['a', 'c'], '2': ['b'] } (无法保证遍历的顺序) */ function reduce (collection, iteratee, accumulator) { - var func = isArray(collection) ? arrayReduce : baseReduce, - initFromCollection = arguments.length < 3; + var func = isArray(collection) ? arrayReduce : baseReduce, + initAccum = arguments.length < 3; - return func(collection, getIteratee(iteratee, 4), accumulator, initFromCollection, baseEach); + return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach); } /** @@ -7788,27 +7829,25 @@ * @returns {Array} 返回过滤后的新数组 * @example * - * var resolve = _.partial(_.map, _, 'user'); - * * var users = [ * { 'user': 'barney', 'age': 36, 'active': false }, * { 'user': 'fred', 'age': 40, 'active': true } * ]; * - * resolve( _.reject(users, function(o) { return !o.active; }) ); - * // => ['fred'] + * _.reject(users, function(o) { return !o.active; }); + * // => objects for ['fred'] * - * // 使用了 `_.matches` 的回调结果 - * resolve( _.reject(users, { 'age': 40, 'active': true }) ); - * // => ['barney'] + * // 使用了 `_.matches` iteratee 的结果 + * _.reject(users, { 'age': 40, 'active': true }); + * // => objects for ['barney'] * - * // 使用了 `_.matchesProperty` 的回调结果 - * resolve( _.reject(users, ['active', false]) ); - * // => ['fred'] + * // 使用了 `_.matchesProperty` iteratee 的结果 + * _.reject(users, ['active', false]); + * // => objects for ['fred'] * - * // 使用了 `_.property` 的回调结果 - * resolve( _.reject(users, 'active') ); - * // => ['barney'] + * // 使用了 `_.property` iteratee 的结果 + * _.reject(users, 'active'); + * // => objects for ['barney'] */ function reject (collection, predicate) { var func = isArray(collection) ? arrayFilter : baseFilter; @@ -7850,8 +7889,11 @@ * @returns {Array} 返回随机元素 * @example * - * _.sampleSize([1, 2, 3, 4], 2); + * _.sampleSize([1, 2, 3], 2); * // => [3, 1] + * + * _.sampleSize([1, 2, 3], 4); + * // => [2, 3, 1] */ function sampleSize (collection, n) { var index = -1, @@ -7859,7 +7901,7 @@ length = result.length, lastIndex = length - 1; - n = clamp(toInteger(n), 0, length); + n = baseClamp(toInteger(n), 0, length); while (++index < n) { var rand = baseRandom(index, lastIndex), value = result[rand]; @@ -7975,8 +8017,6 @@ * @returns {Array} 返回排序后的数组 * @example * - * var resolve = _.partial(_.map, _, _.values); - * * var users = [ * { 'user': 'fred', 'age': 48 }, * { 'user': 'barney', 'age': 36 }, @@ -7984,16 +8024,17 @@ * { 'user': 'barney', 'age': 34 } * ]; * - * resolve( _.sortBy(users, function(o) { return o.user; }) ); - * // => // => [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 42]] * - * resolve( _.sortBy(users, ['user', 'age']) ); - * // => [['barney', 34], ['barney', 36], ['fred', 42], ['fred', 48]] + * _.sortBy(users, function(o) { return o.user; }); + * // => 排序结果 [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 42]] + * + * _.sortBy(users, ['user', 'age']); + * // => 排序结果 [['barney', 34], ['barney', 36], ['fred', 42], ['fred', 48]] * - * resolve( _.sortBy(users, 'user', function(o) { + * _.sortBy(users, 'user', function(o) { * return Math.floor(o.age / 10); - * }) ); - * // => [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 42]] + * }); + * // => 排序结果 [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 42]] */ var sortBy = rest(function (collection, iteratees) { if (collection == null) { @@ -8089,7 +8130,7 @@ * 创建一个调用 `func` 的函数。 * 调用次数不超过 `N` 次。 * 之后再调用这个函数,将返回最后一个调用的结果。 - * + * * @static * @memberOf _ * @category Function @@ -8528,7 +8569,7 @@ * 默认情况下用第一个参数作为缓存的 key。 * `func` 在调用时 this 会绑定在缓存函数上。 * - * **注意:** + * **注意:** * 缓存会暴露在缓存函数的 `cache` 上。 * 它是可以定制的,只要替换了 _.memoize.Cache 构造函数,或实现了 [`Map`](http://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-map-prototype-object) 的 * `delete`, `get`, `has`, 以及 `set`方法。 @@ -8768,7 +8809,7 @@ /** * 创建一个调用 `func` 的函数。 * `this` 绑定到这个函数 并且 从 `start` 之后的参数都作为数组传入。 - * + * * **注意:** 这个方法基于[rest parameter](https://mdn.io/rest_parameters) * * @static @@ -8862,9 +8903,9 @@ /** * 创建一个节流函数,在 `wait` 秒内最多执行 `func` 一次的函数。 * 该函数提供一个 cancel 方法取消延迟的函数调用以及 flush 方法立即调用。 - * 可以提供一个 options 对象决定如何调用 func 方法, options.leading 与|或 options.trailing 决定 `wait` 前后如何触发。 func 会传入最后一次传入的参数给这个函数。 随后调用的函数返回是最后一次 func 调用的结果。 + * 可以提供一个 options 对象决定如何调用 func 方法, options.leading 与|或 options.trailing 决定 `wait` 前后如何触发。 func 会传入最后一次传入的参数给这个函数。 随后调用的函数返回是最后一次 func 调用的结果。 * - * **注意:** 如果 leading 和 trailing 都设定为 true。 则 func 允许 trailing 方式调用的条件为: 在 wait 期间多次调用。 + * **注意:** 如果 leading 和 trailing 都设定为 true。 则 func 允许 trailing 方式调用的条件为: 在 wait 期间多次调用。 * * 查看 [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation) * 了解 `_.throttle` 与 `_.debounce` 的区别 @@ -8966,13 +9007,10 @@ * @returns {*} 返回拷贝后的值 * @example * - * var users = [ - * { 'user': 'barney' }, - * { 'user': 'fred' } - * ]; + * var objects = [{ 'a': 1 }, { 'b': 2 }]; * - * var shallow = _.clone(users); - * console.log(shallow[0] === users[0]); + * var shallow = _.clone(objects); + * console.log(shallow[0] === objects[0]); * // => true */ function clone (value) { @@ -8998,12 +9036,12 @@ * } * } * - * var el = _.clone(document.body, customizer); + * var el = _.cloneWith(document.body, customizer); * * console.log(el === document.body); * // => false * console.log(el.nodeName); - * // => BODY + * // => 'BODY' * console.log(el.childNodes.length); * // => 0 */ @@ -9021,13 +9059,10 @@ * @returns {*} 返回拷贝后的值 * @example * - * var users = [ - * { 'user': 'barney' }, - * { 'user': 'fred' } - * ]; + * var objects = [{ 'a': 1 }, { 'b': 2 }]; * - * var deep = _.cloneDeep(users); - * console.log(deep[0] === users[0]); + * var deep = _.cloneDeep(objects); + * console.log(deep[0] === objects[0]); * // => false */ function cloneDeep (value) { @@ -9248,7 +9283,7 @@ } /** - * 检查 `value` 是否是原始 boolean 类型或者对象。 + * 检查 `value` 是否是原始 boolean 类型或者对象。 * * @static * @memberOf _ @@ -9619,7 +9654,7 @@ /** * 这个方法类似 `_.isMatch`。 - * 除了它接受一个 customizer 定制比较的值。 + * 除了它接受一个 customizer 定制比较的值。 * 如果 customizer 返回 undefined 将会比较处理方法代替。 customizer 会传入5个参数:(objValue, srcValue, index|key, object, source) * * @static @@ -9848,7 +9883,7 @@ /** * 检查 `value` 是否是安全整数。 * 这个整数应该是符合 IEEE-754 标准的非双精度浮点数。 - * + * * **注意:** 这个方法基于 [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger). * * @static @@ -10014,10 +10049,17 @@ * @returns {Array} 然后转换后的数组 * @example * - * (function() { - * return _.toArray(arguments).slice(1); - * }(1, 2, 3)); - * // => [2, 3] + * _.toArray({ 'a': 1, 'b': 2 }); + * // => [1, 2] + * + * _.toArray('abc'); + * // => ['a', 'b', 'c'] + * + * _.toArray(1); + * // => [] + * + * _.toArray(null); + * // => [] */ function toArray (value) { if (!value) { @@ -10097,10 +10139,7 @@ * // => 3 */ function toLength (value) { - if (!value) { - return 0; - } - return clamp(toInteger(value), 0, MAX_ARRAY_LENGTH); + return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0; } /** @@ -10126,20 +10165,17 @@ * // => 3 */ function toNumber (value) { - if (!value) { - return value === 0 ? value : +value; - } if (isObject(value)) { var other = isFunction(value.valueOf) ? value.valueOf() : value; value = isObject(other) ? (other + '') : other; } - if (typeof value == 'number' || !isString(value)) { - return +value; + if (typeof value != 'string') { + return value === 0 ? value : +value; } - value = baseTrim(value); + value = value.replace(reTrim, ''); var isBinary = reIsBinary.test(value); return (isBinary || reIsOctal.test(value)) - ? nativeParseInt(value.slice(2), isBinary ? 2 : 8) + ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : (reIsBadHex.test(value) ? NAN : +value); } @@ -10194,10 +10230,7 @@ * // => 3 */ function toSafeInteger (value) { - if (!value) { - return value === 0 ? value : 0; - } - return clamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER); + return baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER); } /** @@ -10228,7 +10261,10 @@ if (value == null) { return ''; } - var result = isSymbol(value) ? symbolToString.call(value) : (value + ''); + if (isSymbol(value)) { + return Symbol ? symbolToString.call(value) : ''; + } + var result = (value + ''); return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; } @@ -10327,7 +10363,7 @@ * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); * // => { 'a': 1, 'b': 2 } */ - var assignInWith = createAssigner(function (object, source, customizer) { + var assignInWith = createAssigner(function (object, source, srcIndex, customizer) { copyObjectWith(source, keysIn(source), object, customizer); }); @@ -10357,13 +10393,13 @@ * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); * // => { 'a': 1, 'b': 2 } */ - var assignWith = createAssigner(function (object, source, customizer) { + var assignWith = createAssigner(function (object, source, srcIndex, customizer) { copyObjectWith(source, keys(source), object, customizer); }); /** * 根据 `object` 的路径获取值为数组。 - * + * * @static * @memberOf _ * @category Object @@ -10387,7 +10423,7 @@ /** * 创建一个继承 `prototype` 的对象。 * 如果提供了 `properties`,它的可枚举属性会被分配到创建的对象上。 - * + * * @static * @memberOf _ * @category Object @@ -10476,7 +10512,7 @@ * @param {Object} object 需要检索的对象 * @param {Function|Object|string} [predicate=_.identity] 这个函数会处理每一个元素 * @returns {string|undefined} 返回匹配的 key,否则返回 `undefined`。 - * + * * @example * * var users = { @@ -10807,24 +10843,10 @@ * * _.invert(object); * // => { '1': 'c', '2': 'b' } - * - * // 使用 `multiVal` - * _.invert(object, true); - * // => { '1': ['a', 'c'], '2': ['b'] } */ - function invert (object, multiVal, guard) { + function invert (object) { return arrayReduce(keys(object), function (result, key) { - var value = object[key]; - if (multiVal && !guard) { - if (hasOwnProperty.call(result, value)) { - result[value].push(key); - } else { - result[value] = [key]; - } - } - else { - result[value] = key; - } + result[object[key]] = key; return result; }, {}); } @@ -10895,7 +10917,7 @@ /** * 创建 `object` 自身 或 继承的可枚举属性名为一个数组。 - * + * * **注意:** 非对象的值会被强制转换为对象 * * @static @@ -11022,8 +11044,8 @@ * _.merge(users, ages); * // => { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] } */ - var merge = createAssigner(function (object, source) { - baseMerge(object, source); + var merge = createAssigner(function (object, source, srcIndex) { + baseMerge(object, source, srcIndex); }); /** @@ -11059,8 +11081,8 @@ * _.mergeWith(object, other, customizer); * // => { 'fruits': ['apple', 'banana'], 'vegetables': ['beet', 'carrot'] } */ - var mergeWith = createAssigner(function (object, source, customizer) { - baseMerge(object, source, customizer); + var mergeWith = createAssigner(function (object, source, srcIndex, customizer) { + baseMerge(object, source, srcIndex, customizer); }); /** @@ -11075,10 +11097,10 @@ * @returns {Object} 返回新对象 * @example * - * var object = { 'user': 'fred', 'age': 40 }; + * var object = { 'a': 1, 'b': '2', 'c': 3 }; * - * _.omit(object, 'user'); - * // => { 'age': 40 } + * _.omit(object, ['a', 'c']); + * // => { 'b': '2' } */ var omit = rest(function (object, props) { if (object == null) { @@ -11100,15 +11122,15 @@ * @returns {Object} 返回新对象 * @example * - * var object = { 'user': 'fred', 'age': 40 }; + * var object = { 'a': 1, 'b': '2', 'c': 3 }; * * _.omitBy(object, _.isNumber); - * // => { 'user': 'fred' } + * // => { 'b': '2' } */ function omitBy (object, predicate) { - predicate = getIteratee(predicate); - return basePickBy(object, function (value) { - return !predicate(value); + predicate = getIteratee(predicate, 2); + return basePickBy(object, function (value, key) { + return !predicate(value, key); }); } @@ -11123,10 +11145,10 @@ * @returns {Object} 返回新对象 * @example * - * var object = { 'user': 'fred', 'age': 40 }; + * var object = { 'a': 1, 'b': '2', 'c': 3 }; * - * _.pick(object, 'user'); - * // => { 'user': 'fred' } + * _.pick(object, ['a', 'c']); + * // => { 'a': 1, 'c': 3 } */ var pick = rest(function (object, props) { return object == null ? {} : basePick(object, baseFlatten(props)); @@ -11144,18 +11166,18 @@ * @returns {Object} 返回新对象 * @example * - * var object = { 'user': 'fred', 'age': 40 }; + * var object = { 'a': 1, 'b': '2', 'c': 3 }; * * _.pickBy(object, _.isNumber); - * // => { 'age': 40 } + * // => { 'a': 1, 'c': 3 } */ function pickBy (object, predicate) { - return object == null ? {} : basePickBy(object, getIteratee(predicate)); + return object == null ? {} : basePickBy(object, getIteratee(predicate, 2)); } /** * 这个方法类似 `_.get`。 - * 除了如果解析到的值是一个函数的话,就绑定 `this` 到这个函数并返回执行后的结果。 + * 除了如果解析到的值是一个函数的话,就绑定 `this` 到这个函数并返回执行后的结果。 * * @static * @memberOf _ @@ -11272,7 +11294,7 @@ /** * 创建一个对象自身和继承的可枚举属性的键值对数组。 - * + * * @static * @memberOf _ * @category Object @@ -11402,7 +11424,7 @@ /** * 创建 `object` 自身和继承的可枚举属性的值为数组 - * + * * **注意:** 非对象的值会强制转换为对象 * * @static @@ -11446,25 +11468,20 @@ * _.clamp(10, -5, 5); * // => 5 */ - function clamp (number, min, max) { - number = toNumber(number); - if (number === number) { - if (max === undefined) { - max = min; - min = undefined; - } - if (max !== undefined) { - max = toNumber(max); - max = max === max ? max : 0; - number = number <= max ? number : max; - } - if (min !== undefined) { - min = toNumber(min); - min = min === min ? min : 0; - number = number >= min ? number : min; - } + function clamp (number, lower, upper) { + if (upper === undefined) { + upper = lower; + lower = undefined; } - return number; + if (upper !== undefined) { + upper = toNumber(upper); + upper = upper === upper ? upper : 0; + } + if (lower !== undefined) { + lower = toNumber(lower); + lower = lower === lower ? lower : 0; + } + return baseClamp(toNumber(number), lower, upper); } /** @@ -11511,7 +11528,7 @@ end = toNumber(end) || 0; } number = toNumber(number); - return number >= nativeMin(start, end) && number < nativeMax(start, end); + return baseInRange(number, start, end); } /** @@ -11542,43 +11559,43 @@ * _.random(1.2, 5.2); * // => 1.2 和 5.2 之间的浮点数 */ - function random (min, max, floating) { - if (floating && typeof floating != 'boolean' && isIterateeCall(min, max, floating)) { - max = floating = undefined; + function random (lower, upper, floating) { + if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) { + upper = floating = undefined; } if (floating === undefined) { - if (typeof max == 'boolean') { - floating = max; - max = undefined; + if (typeof upper == 'boolean') { + floating = upper; + upper = undefined; } - else if (typeof min == 'boolean') { - floating = min; - min = undefined; + else if (typeof lower == 'boolean') { + floating = lower; + lower = undefined; } } - if (min === undefined && max === undefined) { - min = 0; - max = 1; + if (lower === undefined && upper === undefined) { + lower = 0; + upper = 1; } else { - min = toNumber(min) || 0; - if (max === undefined) { - max = min; - min = 0; + lower = toNumber(lower) || 0; + if (upper === undefined) { + upper = lower; + lower = 0; } else { - max = toNumber(max) || 0; + upper = toNumber(upper) || 0; } } - if (min > max) { - var temp = min; - min = max; - max = temp; + if (lower > upper) { + var temp = lower; + lower = upper; + upper = temp; } - if (floating || min % 1 || max % 1) { + if (floating || lower % 1 || upper % 1) { var rand = nativeRandom(); - return nativeMin(min + (rand * (max - min + parseFloat('1e-' + ((rand + '').length - 1)))), max); + return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper); } - return baseRandom(min, max); + return baseRandom(lower, upper); } /*------------------------------------------------------------------------*/ @@ -11670,7 +11687,7 @@ var length = string.length; position = position === undefined ? length - : clamp(toInteger(position), 0, length); + : baseClamp(toInteger(position), 0, length); position -= target.length; return position >= 0 && string.indexOf(target, position) == position; @@ -11927,13 +11944,13 @@ */ function parseInt (string, radix, guard) { // Chrome fails to trim leading whitespace characters. - // See https://code.google.com/p/v8/issues/detail?id=3109 了解详情 + // See https://code.google.com/p/v8/issues/detail?id=3109 for more details. if (guard || radix == null) { radix = 0; } else if (radix) { radix = +radix; } - string = baseTrim(toString(string)); + string = toString(string).replace(reTrim, ''); return nativeParseInt(string, radix || (reHasHexPrefix.test(string) ? 16 : 10)); } @@ -12192,7 +12209,7 @@ * };\ * '); */ - function template(string, options, guard) { + function template (string, options, guard) { // Based on John Resig's `tmpl` implementation (http://ejohn.org/blog/javascript-micro-templating/) // and Laura Doktorova's doT.js (https://github.com/olado/doT). var settings = lodash.templateSettings; @@ -12371,7 +12388,7 @@ return string; } if (guard || chars === undefined) { - return baseTrim(string); + return string.replace(reTrim, ''); } chars = (chars + ''); if (!chars) { @@ -12544,7 +12561,7 @@ /** * 反向版 `_.escape`。 - * 这个方法转换 HTML 实体 + * 这个方法转换 HTML 实体 * `&`, `<`, `>`, `"`, `'`, 以及 ``` 为对应的字符。 * * **注意:** 不会转换其他的 HTML 实体,需要转换可以使用类似 [_he_](https://mths.be/he) 的第三方库。 @@ -12839,7 +12856,7 @@ * 如果 `func` 是一个属性名,传入包含这个属性名的对象,回调返回对应属性名的值。 * 如果 `func` 是一个对象,传入的元素有相同的对象属性,回调返回 `true`。 * 其他情况返回 `false`。 - * + * * @static * @memberOf _ * @category Utility @@ -13107,7 +13124,7 @@ } /** - * 创建一个传入提供的参数的函数并调用 `iteratees` 返回结果的函数。 + * 创建一个传入提供的参数的函数并调用 `iteratees` 返回结果的函数。 * * @static * @memberOf _ @@ -13124,7 +13141,7 @@ var over = createOver(arrayMap); /** - * 创建一个传入提供的参数的函数并调用 `iteratees` 判断是否 全部 都为真值的函数。 + * 创建一个传入提供的参数的函数并调用 `iteratees` 判断是否 全部 都为真值的函数。 * * @static * @memberOf _ @@ -13147,7 +13164,7 @@ var overEvery = createOver(arrayEvery); /** - * 创建一个传入提供的参数的函数并调用 `iteratees` 判断是否 存在 有真值的函数。 + * 创建一个传入提供的参数的函数并调用 `iteratees` 判断是否 存在 有真值的函数。 * * @static * @memberOf _ @@ -13197,7 +13214,7 @@ /** * 反向版 `_.property`。 * 这个方法创建的函数返回给定 path 在对象上的值。 - * + * * @static * @memberOf _ * @category Utility @@ -13226,7 +13243,7 @@ * 如果 `end` 没有指定,`start` 设置为 `0`。 * 如果 `end` 小于 `start`,会创建一个空数组,除非指定了 `step`。 * - * **注意:** JavaScript 遵循 IEEE-754 标准处理无法预料的浮点数结果。 + * **注意:** JavaScript 遵循 IEEE-754 标准处理无法预料的浮点数结果。 * * @static * @memberOf _ @@ -13258,12 +13275,7 @@ * _.range(0); * // => [] */ - function range (start, end, step) { - if (step && typeof step != 'number' && isIterateeCall(start, end, step)) { - end = step = undefined; - } - return baseRange(start, end, step); - } + var range = createRange(); /** * 这个方法类似 `_.range`, @@ -13299,12 +13311,7 @@ * _.rangeRight(0); * // => [] */ - function rangeRight (start, end, step) { - if (step && typeof step != 'number' && isIterateeCall(start, end, step)) { - end = step = undefined; - } - return baseRange(start, end, step, true); - } + var rangeRight = createRange(true); /** * 调用 iteratee N 次,每次调用返回的结果存入到数组中。 @@ -13488,8 +13495,8 @@ } /** - * 这个方法类似 `_.max` - * 除了它接受 `iteratee` 调用每一个元素,根据返回的 value 决定排序准则。 + * 这个方法类似 `_.max` + * 除了它接受 `iteratee` 调用每一个元素,根据返回的 value 决定排序准则。 * iteratee 会传入1个参数:(value)。 * * @static @@ -13500,17 +13507,14 @@ * @returns {*} 返回最大值 * @example * - * var users = [ - * { 'user': 'barney', 'age': 36 }, - * { 'user': 'fred', 'age': 40 } - * ]; + * var objects = [{ 'n': 1 }, { 'n': 2 }]; * - * _.maxBy(users, function(o) { return o.age; }); - * // => { 'user': 'fred', 'age': 40 } + * _.maxBy(objects, function(o) { return o.n; }); + * // => { 'n': 2 } * - * // 使用了 `_.property` 的回调结果 - * _.maxBy(users, 'age'); - * // => { 'user': 'fred', 'age': 40 } + * // 使用了 `_.property` iteratee 的回调结果 + * _.maxBy(objects, 'n'); + * // => { 'n': 2 } */ function maxBy (array, iteratee) { return (array && array.length) @@ -13569,17 +13573,14 @@ * @returns {*} 返回最小值 * @example * - * var users = [ - * { 'user': 'barney', 'age': 36 }, - * { 'user': 'fred', 'age': 40 } - * ]; + * var objects = [{ 'n': 1 }, { 'n': 2 }]; * - * _.minBy(users, function(o) { return o.age; }); - * // => { 'user': 'barney', 'age': 36 } + * _.minBy(objects, function(o) { return o.n; }); + * // => { 'n': 1 } * - * // 使用了 `_.property` 的回调结果 - * _.minBy(users, 'age'); - * // => { 'user': 'barney', 'age': 36 } + * // 使用了 `_.property` iteratee 的回调结果 + * _.minBy(objects, 'n'); + * // => { 'n': 1 } */ function minBy (array, iteratee) { return (array && array.length) @@ -13655,9 +13656,9 @@ /** * 这个方法类似 `_.sum`。 - * 除了它接受 iteratee 调用每一个元素,根据返回的 value 决定如何计算。 + * 除了它接受 iteratee 调用每一个元素,根据返回的 value 决定如何计算。 * iteratee 会传入1个参数:(value)。 - * + * * @static * @memberOf _ * @category Math @@ -13855,11 +13856,10 @@ lodash.xorWith = xorWith; lodash.zip = zip; lodash.zipObject = zipObject; + lodash.zipObjectDeep = zipObjectDeep; lodash.zipWith = zipWith; // Add aliases. - lodash.each = forEach; - lodash.eachRight = forEachRight; lodash.extend = assignIn; lodash.extendWith = assignInWith; @@ -14003,7 +14003,9 @@ lodash.upperFirst = upperFirst; // Add aliases. - lodash.first = head; + lodash.each = forEach; + lodash.eachRight = forEachRight; + lodash.first = head; mixin(lodash, (function () { var source = {}; @@ -14228,7 +14230,7 @@ lodash.prototype.next = wrapperNext; lodash.prototype.plant = wrapperPlant; lodash.prototype.reverse = wrapperReverse; - lodash.prototype.run = lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue; + lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue; if (iteratorSymbol) { lodash.prototype[iteratorSymbol] = wrapperToIterator; @@ -14243,7 +14245,7 @@ // Expose lodash on the free variable `window` or `self` when available. This // prevents errors in cases where lodash is loaded by a script tag in the presence - // of an AMD loader. See http://requirejs.org/docs/errors.html#mismatch 了解详情 + // of an AMD loader. See http://requirejs.org/docs/errors.html#mismatch for more details. (freeWindow || freeSelf || {})._ = _; // Some AMD build optimizers like r.js check for condition patterns like the following: diff --git a/kebabCase.html b/kebabCase.html index eab4eeb..8033a76 100644 --- a/kebabCase.html +++ b/kebabCase.html @@ -119,7 +119,8 @@
    • xorWith
    • zip
    • zipObject
    • -
    • zipWith
    • +
    • zipObjectDeep
    • +
    • zipWith
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
    • attempt
    • @@ -380,7 +384,6 @@
    • propertyOf
    • range
    • rangeRight
    • -
    • runInContext
    • times
    • toPath
    • uniqueId
    • @@ -392,11 +395,11 @@
      -

      maxBy source npm

      +

      maxBy source npm

      _.maxBy(array, [iteratee=_.identity])
      -

      这个方法类似 _.max -除了它接受 iteratee 调用每一个元素,根据返回的 value 决定排序准则。 +

      这个方法类似 _.max +除了它接受 iteratee 调用每一个元素,根据返回的 value 决定排序准则。 iteratee 会传入1个参数:(value)。

      @@ -411,17 +414,14 @@

      返回值 (*)

      返回最大值

      示例

      -
      var users = [
      -  { 'user': 'barney', 'age': 36 },
      -  { 'user': 'fred',   'age': 40 }
      -];
      +    
      var objects = [{ 'n': 1 }, { 'n': 2 }];
       
      -_.maxBy(users, function(o) { return o.age; });
      -// => { 'user': 'fred', 'age': 40 }
      +_.maxBy(objects, function(o) { return o.n; });
      +// => { 'n': 2 }
       
      -// 使用了 `_.property` 的回调结果
      -_.maxBy(users, 'age');
      -// => { 'user': 'fred', 'age': 40 }
      +// 使用了 `_.property` iteratee 的回调结果
      +_.maxBy(objects, 'n');
      +// => { 'n': 2 }
       
      diff --git a/mean.html b/mean.html index e3097e6..c28755d 100644 --- a/mean.html +++ b/mean.html @@ -119,7 +119,8 @@
    • xorWith
    • zip
    • zipObject
    • -
    • zipWith
    • +
    • zipObjectDeep
    • +
    • zipWith
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
    • attempt
    • @@ -380,7 +384,6 @@
    • propertyOf
    • range
    • rangeRight
    • -
    • runInContext
    • times
    • toPath
    • uniqueId
    • @@ -392,7 +395,7 @@
      -

      memoize source npm

      +

      memoize source npm

      _.memoize(func, [resolver])

      创建一个会缓存 func 结果的函数。 @@ -401,7 +404,7 @@ func 在调用时 this 会绑定在缓存函数上。

      -注意: +注意: 缓存会暴露在缓存函数的 cache 上。 它是可以定制的,只要替换了 _.memoize.Cache 构造函数,或实现了 Mapdeletegethas, 以及 set方法。

      diff --git a/merge.html b/merge.html index a63291d..e3c25d4 100644 --- a/merge.html +++ b/merge.html @@ -119,7 +119,8 @@
    • xorWith
    • zip
    • zipObject
    • -
    • zipWith
    • +
    • zipObjectDeep
    • +
    • zipWith
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
    • attempt
    • @@ -380,7 +384,6 @@
    • propertyOf
    • range
    • rangeRight
    • -
    • runInContext
    • times
    • toPath
    • uniqueId
    • @@ -392,7 +395,7 @@
      -

      minBy source npm

      +

      minBy source npm

      _.minBy(array, [iteratee=_.identity])

      这个方法类似 _.min。 @@ -410,17 +413,14 @@

      返回值 (*)

      返回最小值

      示例

      -
      var users = [
      -  { 'user': 'barney', 'age': 36 },
      -  { 'user': 'fred',   'age': 40 }
      -];
      +    
      var objects = [{ 'n': 1 }, { 'n': 2 }];
       
      -_.minBy(users, function(o) { return o.age; });
      -// => { 'user': 'barney', 'age': 36 }
      +_.minBy(objects, function(o) { return o.n; });
      +// => { 'n': 1 }
       
      -// 使用了 `_.property` 的回调结果
      -_.minBy(users, 'age');
      -// => { 'user': 'barney', 'age': 36 }
      +// 使用了 `_.property` iteratee 的回调结果
      +_.minBy(objects, 'n');
      +// => { 'n': 1 }
       
      diff --git a/mixin.html b/mixin.html index bad65fc..52fc85e 100644 --- a/mixin.html +++ b/mixin.html @@ -119,7 +119,8 @@
    • xorWith
    • zip
    • zipObject
    • -
    • zipWith
    • +
    • zipObjectDeep
    • +
    • zipWith
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
    • attempt
    • @@ -380,7 +384,6 @@
    • propertyOf
    • range
    • rangeRight
    • -
    • runInContext
    • times
    • toPath
    • uniqueId
    • @@ -392,7 +395,7 @@
      -

      padStart source npm

      +

      padStart source npm

      _.padStart([string=''], [length=0], [chars=' '])

      如果字符串长度小于 length 则在左侧填充字符。 如果超出长度则截断超出的部分。

      diff --git a/pages.json b/pages.json index 3abcaae..07254f3 100644 --- a/pages.json +++ b/pages.json @@ -5,581 +5,581 @@ ,{ "href":"/custom-builds", "html":"

      版本定制

      \n

      通过版本定制可以很轻松的定制仅包含你所需功能的 lodash 版本 。更棒的是,我们已经帮你处理好了函数依赖和别名对应,查看 版本区别 & 选择一个适合你的版本。

      \n

      使用 Grunt? 我们准备了 Grunt plugin 协助构建 lodash。

      \n

      安装 lodash-cli 来作为 lodash 全局命令行工具:

      \n
      $ {sudo -H} npm i -g npm\n$ {sudo -H} npm i -g lodash-cli\n$ lodash -h\n

      注意: 请先卸载旧版本,再安装 lodash-cli

      \n
        \n
      • 兼容版本构建,同时支持新旧运行环境,使用 compat 修饰。 (默认)
      • \n
      \n
      lodash compat\n
        \n
      • 现代版本构建,针对新的环境,包括 ES5/ES6 支持,使用 modern 修饰。
      • \n
      \n
      lodash modern\n
        \n
      • 严格模式版本构建, 开启 ES 严格模式,使用 strict 修饰。
      • \n
      \n
      lodash strict\n
        \n
      • 模块化版本构建,拆散 lodash 为各个模块,使用 modularize 修饰。
      • \n
      \n
      lodash modularize\n

      构建命令:

      \n
        \n
      • 使用 category 命令以逗号分隔的方式传入需要的函数分类。可用的函数分类有: “array”, “chain”, “collection”, “date”, “function”, “lang”, “object”, “number”, “string”, & “utility”=。
      • \n
      \n
      lodash category=collection,function\n
        \n
      • 使用 exports 命令以逗号分隔的方式传入导出 lodash 函数的方式,可用的方式有: “amd”, “commonjs”, “es”, “global”, “iojs”, “node”, “npm”, “none”, & “umd”.
      • \n
      \n
      lodash exports=amd,commonjs,iojs\n
        \n
      • 使用 iife 命令指定代码替换 包裹 lodash 的 IIFE
      • \n
      \n
      lodash iife="!function(window,undefined){%output%}(this)"\n
        \n
      • 使用 include 命令以逗号分隔的方式传入需要包含的函数。
      • \n
      \n
      lodash include=each,filter,map\n
        \n
      • 使用 minus 命令以逗号分隔的方式传入需要删减的函数/分类。
      • \n
      \n
      lodash modern minus=result,shuffle\n
        \n
      • 使用 plus 命令以逗号分隔的方式传入需要补充的函数/分类。
      • \n
      \n
      lodash category=array plus=random,template\n
        \n
      • 使用 template 命令传入路径相匹配的文件生成预编译模板。 注意: 预编译模板分配在 _.templates 对象上。
      • \n
      \n
      lodash template="./*.jst"\n
        \n
      • 使用 settings 命令设置预编译模板时的模板语法。
      • \n
      \n
      lodash settings="{interpolate:/\\{\\{([\\s\\S]+?)\\}\\}/g}"\n
        \n
      • 使用 moduleId 命令指定 lodash 的 AMD module ID 或 包含 lodash 的编译模板的 module ID。指定为 none 表示创建编译模板不依赖 lodash。
      • \n
      \n
      lodash moduleId=underscore\n

      注意:

      \n
        \n
      • 所有命令可以组合(除了 compat & modern
      • \n
      • exports 的值 “es” & “npm” 只能与 modularize 命令联用。
      • \n
      • modularize 命令使用最先的 exports 的值作为模块格式,忽略后续的值。
      • \n
      • 除非指定 -o--output,不然所有文件会保存在当前工作目录。
      • \n
      • Node.js 0.10.8-0.10.11 存在 bugs 导致无法最小化构建。
      • \n
      \n

      另外还支持以下选项:

      \n
      -c, --stdout .......... 输出到stdout(译注:类似直接输出在终端那样)\n-d, --development ..... 输出非最小化的开发代码\n-h, --help ............ 显示帮助信息\n-m, --source-map ...... 生成source-map文件\n-o, --output .......... 指定输出的路径/文件名\n-p, --production ...... 输出最小化后的产品代码\n-s, --silent .......... 不显示常规的日志输出\n-V, --version ......... 显示当前的 lodash 版本号\n
      \n
      " } ,{ "href":"/chunk", - "html":"

      chunk source npm

      \n
      _.chunk(array, [size=0])
      \n\n

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

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要被处理的数组

        \n
      2. \n
      3. [size=0] (number)

        每个块的长度

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回一个拆分好的新数组

      \n
      \n

      示例

      \n
      _.chunk(['a', 'b', 'c', 'd'], 2);\n// => [['a', 'b'], ['c', 'd']]\n\n_.chunk(['a', 'b', 'c', 'd'], 3);\n// => [['a', 'b', 'c'], ['d']]\n
      \n
      \n
      \n\n
      " } + "html":"

      chunk source npm

      \n
      _.chunk(array, [size=0])
      \n\n

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

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要被处理的数组

        \n
      2. \n
      3. [size=0] (number)

        每个块的长度

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回一个拆分好的新数组

      \n
      \n

      示例

      \n
      _.chunk(['a', 'b', 'c', 'd'], 2);\n// => [['a', 'b'], ['c', 'd']]\n\n_.chunk(['a', 'b', 'c', 'd'], 3);\n// => [['a', 'b', 'c'], ['d']]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/compact", - "html":"

      compact source npm

      \n
      _.compact(array)
      \n\n

      创建一个移除了所有假值的数组。例如:falsenull、\n0""undefined, 以及NaN 都是 “假值”.

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要被处理的数组。

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回移除了假值的数组。

      \n
      \n

      示例

      \n
      _.compact([0, 1, false, 2, '', 3]);\n// => [1, 2, 3]\n
      \n
      \n
      \n\n
      " } + "html":"

      compact source npm

      \n
      _.compact(array)
      \n\n

      创建一个移除了所有假值的数组。例如:falsenull、\n0""undefined, 以及NaN 都是 “假值”.

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要被处理的数组。

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回移除了假值的数组。

      \n
      \n

      示例

      \n
      _.compact([0, 1, false, 2, '', 3]);\n// => [1, 2, 3]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/concat", - "html":"

      concat source npm

      \n
      _.concat(array, [values])
      \n\n

      创建一个用任何数组 或 值连接的新数组。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要被连接的数组

        \n
      2. \n
      3. [values] (...*)

        需要被连接的值的队列

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回连接后的新数组

      \n
      \n

      示例

      \n
      var array = [1];\nvar other = _.concat(array, 2, [3], [[4]]);\n\nconsole.log(other);\n// => [1, 2, 3, [4]]\n\nconsole.log(array);\n// => [1]\n
      \n
      \n
      \n\n
      " } + "html":"

      concat source npm

      \n
      _.concat(array, [values])
      \n\n

      创建一个用任何数组 或 值连接的新数组。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要被连接的数组

        \n
      2. \n
      3. [values] (...*)

        需要被连接的值的队列

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回连接后的新数组

      \n
      \n

      示例

      \n
      var array = [1];\nvar other = _.concat(array, 2, [3], [[4]]);\n\nconsole.log(other);\n// => [1, 2, 3, [4]]\n\nconsole.log(array);\n// => [1]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/difference", - "html":"

      difference source npm

      \n
      _.difference(array, [values])
      \n\n

      创建一个差异化后的数组,不包括使用 SameValueZero 方法提供的数组。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要处理的数组

        \n
      2. \n
      3. [values] (...Array)

        用于对比差异的数组

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回一个差异化后的新数组

      \n
      \n

      示例

      \n
      _.difference([3, 2, 1], [4, 2]);\n// => [3, 1]\n
      \n
      \n
      \n\n
      " } + "html":"

      difference source npm

      \n
      _.difference(array, [values])
      \n\n

      创建一个差异化后的数组,不包括使用 SameValueZero 方法提供的数组。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要处理的数组

        \n
      2. \n
      3. [values] (...Array)

        用于对比差异的数组

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回一个差异化后的新数组

      \n
      \n

      示例

      \n
      _.difference([3, 2, 1], [4, 2]);\n// => [3, 1]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/differenceBy", - "html":"

      differenceBy source npm

      \n
      _.differenceBy(array, [values], [iteratee=_.identity])
      \n\n

      这个方法类似 _.difference,除了它接受一个 iteratee 调用每一个数组和值。iteratee 会传入一个参数:(value)。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要处理的数组

        \n
      2. \n
      3. [values] (...Array)

        用于对比差异的数组

        \n
      4. \n
      5. [iteratee=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      6. \n
      \n

      返回值 (Array)

      \n

      返回一个差异化后的新数组

      \n
      \n

      示例

      \n
      _.differenceBy([3.1, 2.2, 1.3], [4.4, 2.5], Math.floor);\n// => [3.1, 1.3]\n\n// 使用了 `_.property` 的回调结果\n_.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n// => [{ 'x': 2 }]\n
      \n
      \n
      \n\n
      " } + "html":"

      differenceBy source npm

      \n
      _.differenceBy(array, [values], [iteratee=_.identity])
      \n\n

      这个方法类似 _.difference,除了它接受一个 iteratee 调用每一个数组和值。iteratee 会传入一个参数:(value)。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要处理的数组

        \n
      2. \n
      3. [values] (...Array)

        用于对比差异的数组

        \n
      4. \n
      5. [iteratee=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      6. \n
      \n

      返回值 (Array)

      \n

      返回一个差异化后的新数组

      \n
      \n

      示例

      \n
      _.differenceBy([3.1, 2.2, 1.3], [4.4, 2.5], Math.floor);\n// => [3.1, 1.3]\n\n// 使用了 `_.property` 的回调结果\n_.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n// => [{ 'x': 2 }]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/differenceWith", - "html":"

      differenceWith source npm

      \n
      _.differenceWith(array, [values], [comparator])
      \n\n

      这个方法类似 _.difference,除了它接受一个 comparator 调用每一个数组元素的值。 comparator 会传入2个参数:(arrVal, othVal)。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要处理的数组

        \n
      2. \n
      3. [values] (...Array)

        用于对比差异的数组

        \n
      4. \n
      5. [comparator] (Function)

        这个函数会处理每一个元素

        \n
      6. \n
      \n

      返回值 (Array)

      \n

      返回一个差异化后的新数组

      \n
      \n

      示例

      \n
      var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n\n_.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);\n// => [{ 'x': 2, 'y': 1 }]\n
      \n
      \n
      \n\n
      " } + "html":"

      differenceWith source npm

      \n
      _.differenceWith(array, [values], [comparator])
      \n\n

      这个方法类似 _.difference,除了它接受一个 comparator 调用每一个数组元素的值。 comparator 会传入2个参数:(arrVal, othVal)。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要处理的数组

        \n
      2. \n
      3. [values] (...Array)

        用于对比差异的数组

        \n
      4. \n
      5. [comparator] (Function)

        这个函数会处理每一个元素

        \n
      6. \n
      \n

      返回值 (Array)

      \n

      返回一个差异化后的新数组

      \n
      \n

      示例

      \n
      var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n\n_.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);\n// => [{ 'x': 2, 'y': 1 }]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/drop", - "html":"

      drop source npm

      \n
      _.drop(array, [n=1])
      \n\n

      裁剪数组中的前 N 个数组,返回剩余的部分。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要处理的数组

        \n
      2. \n
      3. [n=1] (number)

        裁剪的个数

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回数组的剩余的部分。

      \n
      \n

      示例

      \n
      _.drop([1, 2, 3]);\n// => [2, 3]\n\n_.drop([1, 2, 3], 2);\n// => [3]\n\n_.drop([1, 2, 3], 5);\n// => []\n\n_.drop([1, 2, 3], 0);\n// => [1, 2, 3]\n
      \n
      \n
      \n\n
      " } + "html":"

      drop source npm

      \n
      _.drop(array, [n=1])
      \n\n

      裁剪数组中的前 N 个数组,返回剩余的部分。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要处理的数组

        \n
      2. \n
      3. [n=1] (number)

        裁剪的个数

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回数组的剩余的部分。

      \n
      \n

      示例

      \n
      _.drop([1, 2, 3]);\n// => [2, 3]\n\n_.drop([1, 2, 3], 2);\n// => [3]\n\n_.drop([1, 2, 3], 5);\n// => []\n\n_.drop([1, 2, 3], 0);\n// => [1, 2, 3]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/dropRight", - "html":"

      dropRight source npm

      \n
      _.dropRight(array, [n=1])
      \n\n

      从右边开始裁剪数组中的 N 个数组,返回剩余的部分。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要处理的数组

        \n
      2. \n
      3. [n=1] (number)

        裁剪的个数

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回数组的剩余的部分。

      \n
      \n

      示例

      \n
      _.dropRight([1, 2, 3]);\n// => [1, 2]\n\n_.dropRight([1, 2, 3], 2);\n// => [1]\n\n_.dropRight([1, 2, 3], 5);\n// => []\n\n_.dropRight([1, 2, 3], 0);\n// => [1, 2, 3]\n
      \n
      \n
      \n\n
      " } + "html":"

      dropRight source npm

      \n
      _.dropRight(array, [n=1])
      \n\n

      从右边开始裁剪数组中的 N 个数组,返回剩余的部分。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要处理的数组

        \n
      2. \n
      3. [n=1] (number)

        裁剪的个数

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回数组的剩余的部分。

      \n
      \n

      示例

      \n
      _.dropRight([1, 2, 3]);\n// => [1, 2]\n\n_.dropRight([1, 2, 3], 2);\n// => [1]\n\n_.dropRight([1, 2, 3], 5);\n// => []\n\n_.dropRight([1, 2, 3], 0);\n// => [1, 2, 3]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/dropRightWhile", - "html":"

      dropRightWhile source npm

      \n
      _.dropRightWhile(array, [predicate=_.identity])
      \n\n

      从右边开始裁剪数组,起点从 predicate 返回假值开始。predicate 会传入3个参数:(value, index, array)。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要处理的数组

        \n
      2. \n
      3. [predicate=_.identity] (Function|Object|string)

        这个函数会在每一次迭代调用

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回裁剪后的数组

      \n
      \n

      示例

      \n
      var resolve = _.partial(_.map, _, 'user');\n\nvar users = [\n  { 'user': 'barney',  'active': true },\n  { 'user': 'fred',    'active': false },\n  { 'user': 'pebbles', 'active': false }\n];\n\nresolve( _.dropRightWhile(users, function(o) { return !o.active; }) );\n// => ['barney']\n\n// 使用了 `_.matches` 的回调结果\nresolve( _.dropRightWhile(users, { 'user': 'pebbles', 'active': false }) );\n// => ['barney', 'fred']\n\n// 使用了 `_.matchesProperty` 的回调结果\nresolve( _.dropRightWhile(users, ['active', false]) );\n// => ['barney']\n\n// 使用了 `_.property` 的回调结果\nresolve( _.dropRightWhile(users, 'active') );\n// => ['barney', 'fred', 'pebbles']\n
      \n
      \n
      \n\n
      " } + "html":"

      dropRightWhile source npm

      \n
      _.dropRightWhile(array, [predicate=_.identity])
      \n\n

      从右边开始裁剪数组,起点从 predicate 返回假值开始。predicate 会传入3个参数:(value, index, array)。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要处理的数组

        \n
      2. \n
      3. [predicate=_.identity] (Function|Object|string)

        这个函数会在每一次迭代调用

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回裁剪后的数组

      \n
      \n

      示例

      \n
      var resolve = _.partial(_.map, _, 'user');\n\nvar users = [\n  { 'user': 'barney',  'active': true },\n  { 'user': 'fred',    'active': false },\n  { 'user': 'pebbles', 'active': false }\n];\n\nresolve( _.dropRightWhile(users, function(o) { return !o.active; }) );\n// => ['barney']\n\n// 使用了 `_.matches` 的回调结果\nresolve( _.dropRightWhile(users, { 'user': 'pebbles', 'active': false }) );\n// => ['barney', 'fred']\n\n// 使用了 `_.matchesProperty` 的回调结果\nresolve( _.dropRightWhile(users, ['active', false]) );\n// => ['barney']\n\n// 使用了 `_.property` 的回调结果\nresolve( _.dropRightWhile(users, 'active') );\n// => ['barney', 'fred', 'pebbles']\n
      \n
      \n
      \n\n
      " } ,{ "href":"/dropWhile", - "html":"

      dropWhile source npm

      \n
      _.dropWhile(array, [predicate=_.identity])
      \n\n

      裁剪数组,起点从 predicate 返回假值开始。predicate 会传入3个参数:(value, index, array)。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        array 需要处理的数组

        \n
      2. \n
      3. [predicate=_.identity] (Function|Object|string)

        这个函数会在每一次迭代调用

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      Returns the slice of array.

      \n
      \n

      示例

      \n
      var resolve = _.partial(_.map, _, 'user');\n\nvar users = [\n  { 'user': 'barney',  'active': false },\n  { 'user': 'fred',    'active': false },\n  { 'user': 'pebbles', 'active': true }\n];\n\nresolve( _.dropWhile(users, function(o) { return !o.active; }) );\n// => ['pebbles']\n\n// 使用了 `_.matches` 的回调结果\nresolve( _.dropWhile(users, { 'user': 'barney', 'active': false }) );\n// => ['fred', 'pebbles']\n\n// 使用了 `_.matchesProperty` 的回调结果\nresolve( _.dropWhile(users, ['active', false]) );\n// => ['pebbles']\n\n// 使用了 `_.property` 的回调结果\nresolve( _.dropWhile(users, 'active') );\n// => ['barney', 'fred', 'pebbles']\n
      \n
      \n
      \n\n
      " } + "html":"

      dropWhile source npm

      \n
      _.dropWhile(array, [predicate=_.identity])
      \n\n

      裁剪数组,起点从 predicate 返回假值开始。predicate 会传入3个参数:(value, index, array)。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        array 需要处理的数组

        \n
      2. \n
      3. [predicate=_.identity] (Function|Object|string)

        这个函数会在每一次迭代调用

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      Returns the slice of array.

      \n
      \n

      示例

      \n
      var resolve = _.partial(_.map, _, 'user');\n\nvar users = [\n  { 'user': 'barney',  'active': false },\n  { 'user': 'fred',    'active': false },\n  { 'user': 'pebbles', 'active': true }\n];\n\nresolve( _.dropWhile(users, function(o) { return !o.active; }) );\n// => ['pebbles']\n\n// 使用了 `_.matches` 的回调结果\nresolve( _.dropWhile(users, { 'user': 'barney', 'active': false }) );\n// => ['fred', 'pebbles']\n\n// 使用了 `_.matchesProperty` 的回调结果\nresolve( _.dropWhile(users, ['active', false]) );\n// => ['pebbles']\n\n// 使用了 `_.property` 的回调结果\nresolve( _.dropWhile(users, 'active') );\n// => ['barney', 'fred', 'pebbles']\n
      \n
      \n
      \n\n
      " } ,{ "href":"/fill", - "html":"

      fill source npm

      \n
      _.fill(array, value, [start=0], [end=array.length])
      \n\n

      指定 填充数组,从 startend 的位置,但不包括 end 本身的位置。\n
      \n
      \n注意: 这个方法会改变数组

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要填充的数组

        \n
      2. \n
      3. value (*)

        填充的值

        \n
      4. \n
      5. [start=0] (number)

        开始位置

        \n
      6. \n
      7. [end=array.length] (number)

        结束位置

        \n
      8. \n
      \n

      返回值 (Array)

      \n

      返回数组

      \n
      \n

      示例

      \n
      var array = [1, 2, 3];\n\n_.fill(array, 'a');\nconsole.log(array);\n// => ['a', 'a', 'a']\n\n_.fill(Array(3), 2);\n// => [2, 2, 2]\n\n_.fill([4, 6, 8, 10], '*', 1, 3);\n// => [4, '*', '*', 10]\n
      \n
      \n
      \n\n
      " } + "html":"

      fill source npm

      \n
      _.fill(array, value, [start=0], [end=array.length])
      \n\n

      指定 填充数组,从 startend 的位置,但不包括 end 本身的位置。\n
      \n
      \n注意: 这个方法会改变数组

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要填充的数组

        \n
      2. \n
      3. value (*)

        填充的值

        \n
      4. \n
      5. [start=0] (number)

        开始位置

        \n
      6. \n
      7. [end=array.length] (number)

        结束位置

        \n
      8. \n
      \n

      返回值 (Array)

      \n

      返回数组

      \n
      \n

      示例

      \n
      var array = [1, 2, 3];\n\n_.fill(array, 'a');\nconsole.log(array);\n// => ['a', 'a', 'a']\n\n_.fill(Array(3), 2);\n// => [2, 2, 2]\n\n_.fill([4, 6, 8, 10], '*', 1, 3);\n// => [4, '*', '*', 10]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/findIndex", - "html":"

      findIndex source npm

      \n
      _.findIndex(array, [predicate=_.identity])
      \n\n

      这个方法类似 _.find。除了它返回最先通过 predicate 判断为真值的元素的 index ,而不是元素本身。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要搜索的数组

        \n
      2. \n
      3. [predicate=_.identity] (Function|Object|string)

        这个函数会在每一次迭代调用

        \n
      4. \n
      \n

      返回值 (number)

      \n

      返回符合元素的 index,否则返回 -1

      \n
      \n

      示例

      \n
      var users = [\n  { 'user': 'barney',  'active': false },\n  { 'user': 'fred',    'active': false },\n  { 'user': 'pebbles', 'active': true }\n];\n\n_.findIndex(users, function(o) { return o.user == 'barney'; });\n// => 0\n\n// 使用了 `_.matches` 的回调结果\n_.findIndex(users, { 'user': 'fred', 'active': false });\n// => 1\n\n// 使用了 `_.matchesProperty` 的回调结果\n_.findIndex(users, ['active', false]);\n// => 0\n\n// 使用了 `_.property` 的回调结果\n_.findIndex(users, 'active');\n// => 2\n
      \n
      \n
      \n\n
      " } + "html":"

      findIndex source npm

      \n
      _.findIndex(array, [predicate=_.identity])
      \n\n

      这个方法类似 _.find。除了它返回最先通过 predicate 判断为真值的元素的 index ,而不是元素本身。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要搜索的数组

        \n
      2. \n
      3. [predicate=_.identity] (Function|Object|string)

        这个函数会在每一次迭代调用

        \n
      4. \n
      \n

      返回值 (number)

      \n

      返回符合元素的 index,否则返回 -1

      \n
      \n

      示例

      \n
      var users = [\n  { 'user': 'barney',  'active': false },\n  { 'user': 'fred',    'active': false },\n  { 'user': 'pebbles', 'active': true }\n];\n\n_.findIndex(users, function(o) { return o.user == 'barney'; });\n// => 0\n\n// 使用了 `_.matches` 的回调结果\n_.findIndex(users, { 'user': 'fred', 'active': false });\n// => 1\n\n// 使用了 `_.matchesProperty` 的回调结果\n_.findIndex(users, ['active', false]);\n// => 0\n\n// 使用了 `_.property` 的回调结果\n_.findIndex(users, 'active');\n// => 2\n
      \n
      \n
      \n\n
      " } ,{ "href":"/findLastIndex", - "html":"

      findLastIndex source npm

      \n
      _.findLastIndex(array, [predicate=_.identity])
      \n\n

      这个方式类似 _.findIndex , 不过它是从右到左的。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要搜索的数组

        \n
      2. \n
      3. [predicate=_.identity] (Function|Object|string)

        这个函数会在每一次迭代调用

        \n
      4. \n
      \n

      返回值 (number)

      \n

      返回符合元素的 index,否则返回 -1

      \n
      \n

      示例

      \n
      var users = [\n  { 'user': 'barney',  'active': true },\n  { 'user': 'fred',    'active': false },\n  { 'user': 'pebbles', 'active': false }\n];\n\n_.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n// => 2\n\n// 使用了 `_.matches` 的回调结果\n_.findLastIndex(users, { 'user': 'barney', 'active': true });\n// => 0\n\n// 使用了 `_.matchesProperty` 的回调结果\n_.findLastIndex(users, ['active', false]);\n// => 2\n\n// 使用了 `_.property` 的回调结果\n_.findLastIndex(users, 'active');\n// => 0\n
      \n
      \n
      \n\n
      " } + "html":"

      findLastIndex source npm

      \n
      _.findLastIndex(array, [predicate=_.identity])
      \n\n

      这个方式类似 _.findIndex , 不过它是从右到左的。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要搜索的数组

        \n
      2. \n
      3. [predicate=_.identity] (Function|Object|string)

        这个函数会在每一次迭代调用

        \n
      4. \n
      \n

      返回值 (number)

      \n

      返回符合元素的 index,否则返回 -1

      \n
      \n

      示例

      \n
      var users = [\n  { 'user': 'barney',  'active': true },\n  { 'user': 'fred',    'active': false },\n  { 'user': 'pebbles', 'active': false }\n];\n\n_.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n// => 2\n\n// 使用了 `_.matches` 的回调结果\n_.findLastIndex(users, { 'user': 'barney', 'active': true });\n// => 0\n\n// 使用了 `_.matchesProperty` 的回调结果\n_.findLastIndex(users, ['active', false]);\n// => 2\n\n// 使用了 `_.property` 的回调结果\n_.findLastIndex(users, 'active');\n// => 0\n
      \n
      \n
      \n\n
      " } ,{ "href":"/flatMap", - "html":"

      flatMap source npm

      \n
      _.flatMap(array, [iteratee=_.identity])
      \n\n

      创建一个扁平化的数组,每一个值会传入 iteratee 处理,处理结果会与值合并。\niteratee 会传入3个参数:(value, index|key, array)。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        遍历用的数组

        \n
      2. \n
      3. [iteratee=_.identity] (Function|Object|string)

        这个函数会在每一次迭代调用

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回新数组

      \n
      \n

      示例

      \n
      function duplicate(n) {\n  return [n, n];\n}\n\n_.flatMap([1, 2], duplicate);\n// => [1, 1, 2, 2]\n
      \n
      \n
      \n\n
      " } + "html":"

      flatMap source npm

      \n
      _.flatMap(array, [iteratee=_.identity])
      \n\n

      创建一个扁平化的数组,每一个值会传入 iteratee 处理,处理结果会与值合并。\niteratee 会传入3个参数:(value, index|key, array)。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        遍历用的数组

        \n
      2. \n
      3. [iteratee=_.identity] (Function|Object|string)

        这个函数会在每一次迭代调用

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回新数组

      \n
      \n

      示例

      \n
      function duplicate(n) {\n  return [n, n];\n}\n\n_.flatMap([1, 2], duplicate);\n// => [1, 1, 2, 2]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/flatten", - "html":"

      flatten source npm

      \n
      _.flatten(array)
      \n\n

      向上一级展平数组嵌套

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要展平的数组

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回一个展平后的数组

      \n
      \n

      示例

      \n
      _.flatten([1, [2, 3, [4]]]);\n// => [1, 2, 3, [4]]\n
      \n
      \n
      \n\n
      " } + "html":"

      flatten source npm

      \n
      _.flatten(array)
      \n\n

      向上一级展平数组嵌套

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要展平的数组

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回一个展平后的数组

      \n
      \n

      示例

      \n
      _.flatten([1, [2, 3, [4]]]);\n// => [1, 2, 3, [4]]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/flattenDeep", - "html":"

      flattenDeep source npm

      \n
      _.flattenDeep(array)
      \n\n

      这个方法类似 _.flatten, 但它会递归展平数组。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要展平的数组

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回一个展平后的数组

      \n
      \n

      示例

      \n
      _.flattenDeep([1, [2, 3, [4]]]);\n// => [1, 2, 3, 4]\n
      \n
      \n
      \n\n
      " } + "html":"

      flattenDeep source npm

      \n
      _.flattenDeep(array)
      \n\n

      这个方法类似 _.flatten, 但它会递归展平数组。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要展平的数组

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回一个展平后的数组

      \n
      \n

      示例

      \n
      _.flattenDeep([1, [2, 3, [4]]]);\n// => [1, 2, 3, 4]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/fromPairs", - "html":"

      fromPairs source npm

      \n
      _.fromPairs(pairs)
      \n\n

      反向版 _.toPairs,这个方法返回一个由键值对构成的对象。

      \n
      \n\n

      参数

      \n
        \n
      1. pairs (Array)

        键值对

        \n
      2. \n
      \n

      返回值 (Object)

      \n

      返回一个新对象

      \n
      \n

      示例

      \n
      _.fromPairs([['fred', 30], ['barney', 40]]);\n// => { 'fred': 30, 'barney': 40 }\n
      \n
      \n
      \n\n
      " } + "html":"

      fromPairs source npm

      \n
      _.fromPairs(pairs)
      \n\n

      反向版 _.toPairs,这个方法返回一个由键值对构成的对象。

      \n
      \n\n

      参数

      \n
        \n
      1. pairs (Array)

        键值对

        \n
      2. \n
      \n

      返回值 (Object)

      \n

      返回一个新对象

      \n
      \n

      示例

      \n
      _.fromPairs([['fred', 30], ['barney', 40]]);\n// => { 'fred': 30, 'barney': 40 }\n
      \n
      \n
      \n\n
      " } ,{ "href":"/head", - "html":"

      head first source npm

      \n
      _.head(array)
      \n\n

      获得数组的首个元素

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        要检索的数组

        \n
      2. \n
      \n

      返回值 (*)

      \n

      返回数组中的首个元素

      \n
      \n

      示例

      \n
      _.head([1, 2, 3]);\n// => 1\n\n_.head([]);\n// => undefined\n
      \n
      \n
      \n\n
      " } + "html":"

      head first source npm

      \n
      _.head(array)
      \n\n

      获得数组的首个元素

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        要检索的数组

        \n
      2. \n
      \n

      返回值 (*)

      \n

      返回数组中的首个元素

      \n
      \n

      示例

      \n
      _.head([1, 2, 3]);\n// => 1\n\n_.head([]);\n// => undefined\n
      \n
      \n
      \n\n
      " } ,{ "href":"/indexOf", - "html":"

      indexOf source npm

      \n
      _.indexOf(array, value, [fromIndex=0])
      \n\n

      根据 value 使用 SameValueZero 等值比较返回数组中首次匹配的 index, 如果 fromIndex 为负值,将从数组尾端索引进行匹配,如果将 fromIndex 设置为 true,将使用更快的二进制检索机制。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        要检索的数组

        \n
      2. \n
      3. value (*)

        要检索的值

        \n
      4. \n
      5. [fromIndex=0] (number)

        需要检索的起始位置,如果为 true 将使用二进制检索方式。

        \n
      6. \n
      \n

      返回值 (number)

      \n

      返回匹配值的index,否则返回 -1。

      \n
      \n

      示例

      \n
      _.indexOf([1, 2, 1, 2], 2);\n// => 1\n\n// 使用了 `fromIndex`\n_.indexOf([1, 2, 1, 2], 2, 2);\n// => 3\n
      \n
      \n
      \n\n
      " } + "html":"

      indexOf source npm

      \n
      _.indexOf(array, value, [fromIndex=0])
      \n\n

      根据 value 使用 SameValueZero 等值比较返回数组中首次匹配的 index, 如果 fromIndex 为负值,将从数组尾端索引进行匹配,如果将 fromIndex 设置为 true,将使用更快的二进制检索机制。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        要检索的数组

        \n
      2. \n
      3. value (*)

        要检索的值

        \n
      4. \n
      5. [fromIndex=0] (number)

        需要检索的起始位置,如果为 true 将使用二进制检索方式。

        \n
      6. \n
      \n

      返回值 (number)

      \n

      返回匹配值的index,否则返回 -1。

      \n
      \n

      示例

      \n
      _.indexOf([1, 2, 1, 2], 2);\n// => 1\n\n// 使用了 `fromIndex`\n_.indexOf([1, 2, 1, 2], 2, 2);\n// => 3\n
      \n
      \n
      \n\n
      " } ,{ "href":"/initial", - "html":"

      initial source npm

      \n
      _.initial(需要检索的数组)
      \n\n

      获取数组中除了最后一个元素之外的所有元素

      \n
      \n\n

      参数

      \n
        \n
      1. 需要检索的数组 (Array)
         
      2. \n
      \n

      返回值 (Array)

      \n

      返回没有最后一个元素的数组

      \n
      \n

      示例

      \n
      _.initial([1, 2, 3]);\n// => [1, 2]\n
      \n
      \n
      \n\n
      " } + "html":"

      initial source npm

      \n
      _.initial(需要检索的数组)
      \n\n

      获取数组中除了最后一个元素之外的所有元素

      \n
      \n\n

      参数

      \n
        \n
      1. 需要检索的数组 (Array)
         
      2. \n
      \n

      返回值 (Array)

      \n

      返回没有最后一个元素的数组

      \n
      \n

      示例

      \n
      _.initial([1, 2, 3]);\n// => [1, 2]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/intersection", - "html":"

      intersection source npm

      \n
      _.intersection([arrays])
      \n\n

      创建一个包含所有使用 SameValueZero 进行等值比较后筛选的唯一值数组。

      \n
      \n\n

      参数

      \n
        \n
      1. [arrays] (...Array)

        需要处理的数组队列

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回数组中所有数组共享元素的新数组

      \n
      \n

      示例

      \n
      _.intersection([2, 1], [4, 2], [1, 2]);\n// => [2]\n
      \n
      \n
      \n\n
      " } + "html":"

      intersection source npm

      \n
      _.intersection([arrays])
      \n\n

      创建一个包含所有使用 SameValueZero 进行等值比较后筛选的唯一值数组。

      \n
      \n\n

      参数

      \n
        \n
      1. [arrays] (...Array)

        需要处理的数组队列

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回数组中所有数组共享元素的新数组

      \n
      \n

      示例

      \n
      _.intersection([2, 1], [4, 2], [1, 2]);\n// => [2]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/intersectionBy", - "html":"

      intersectionBy source npm

      \n
      _.intersectionBy([arrays], [iteratee=_.identity])
      \n\n

      这个方法类似 _.intersection,除了它接受一个 iteratee 调用每一个数组和值。iteratee 会传入一个参数:(value)

      \n
      \n\n

      参数

      \n
        \n
      1. [arrays] (...Array)

        需要检索的数组

        \n
      2. \n
      3. [iteratee=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回数组中共享元素的新数组

      \n
      \n

      示例

      \n
      _.intersectionBy([2.1, 1.2], [4.3, 2.4], Math.floor);\n// => [2.1]\n\n// 使用了 `_.property` 的回调结果\n_.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n// => [{ 'x': 1 }]\n
      \n
      \n
      \n\n
      " } + "html":"

      intersectionBy source npm

      \n
      _.intersectionBy([arrays], [iteratee=_.identity])
      \n\n

      这个方法类似 _.intersection,除了它接受一个 iteratee 调用每一个数组和值。iteratee 会传入一个参数:(value)

      \n
      \n\n

      参数

      \n
        \n
      1. [arrays] (...Array)

        需要检索的数组

        \n
      2. \n
      3. [iteratee=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回数组中共享元素的新数组

      \n
      \n

      示例

      \n
      _.intersectionBy([2.1, 1.2], [4.3, 2.4], Math.floor);\n// => [2.1]\n\n// 使用了 `_.property` 的回调结果\n_.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n// => [{ 'x': 1 }]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/intersectionWith", - "html":"

      intersectionWith source npm

      \n
      _.intersectionWith([arrays], [comparator])
      \n\n

      这个方法类似 _.intersection,除了它接受一个 comparator 调用每一个数组和值。iteratee 会传入2个参数:((arrVal, othVal)

      \n
      \n\n

      参数

      \n
        \n
      1. [arrays] (...Array)

        需要检索的数组

        \n
      2. \n
      3. [comparator] (Function)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回数组中共享元素的新数组

      \n
      \n

      示例

      \n
      var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\nvar others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n\n_.intersectionWith(objects, others, _.isEqual);\n// => [{ 'x': 1, 'y': 2 }]\n
      \n
      \n
      \n\n
      " } + "html":"

      intersectionWith source npm

      \n
      _.intersectionWith([arrays], [comparator])
      \n\n

      这个方法类似 _.intersection,除了它接受一个 comparator 调用每一个数组和值。iteratee 会传入2个参数:((arrVal, othVal)

      \n
      \n\n

      参数

      \n
        \n
      1. [arrays] (...Array)

        需要检索的数组

        \n
      2. \n
      3. [comparator] (Function)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回数组中共享元素的新数组

      \n
      \n

      示例

      \n
      var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\nvar others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n\n_.intersectionWith(objects, others, _.isEqual);\n// => [{ 'x': 1, 'y': 2 }]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/join", - "html":"

      join source npm

      \n
      _.join(array, [separator=','])
      \n\n

      将数组中的所有元素转换为由 separator 分隔的字符串。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要转换的数组

        \n
      2. \n
      3. [separator=','] (string)

        分隔符

        \n
      4. \n
      \n

      返回值 (string)

      \n

      返回连接好的字符串

      \n
      \n

      示例

      \n
      _.join(['a', 'b', 'c'], '~');\n// => 'a~b~c'\n
      \n
      \n
      \n\n
      " } + "html":"

      join source npm

      \n
      _.join(array, [separator=','])
      \n\n

      将数组中的所有元素转换为由 separator 分隔的字符串。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要转换的数组

        \n
      2. \n
      3. [separator=','] (string)

        分隔符

        \n
      4. \n
      \n

      返回值 (string)

      \n

      返回连接好的字符串

      \n
      \n

      示例

      \n
      _.join(['a', 'b', 'c'], '~');\n// => 'a~b~c'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/last", - "html":"

      last source npm

      \n
      _.last(array)
      \n\n

      获取数组中的最后一个元素

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        要检索的数组

        \n
      2. \n
      \n

      返回值 (*)

      \n

      返回数组中的最后一个元素

      \n
      \n

      示例

      \n
      _.last([1, 2, 3]);\n// => 3\n
      \n
      \n
      \n\n
      " } + "html":"

      last source npm

      \n
      _.last(array)
      \n\n

      获取数组中的最后一个元素

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        要检索的数组

        \n
      2. \n
      \n

      返回值 (*)

      \n

      返回数组中的最后一个元素

      \n
      \n

      示例

      \n
      _.last([1, 2, 3]);\n// => 3\n
      \n
      \n
      \n\n
      " } ,{ "href":"/lastIndexOf", - "html":"

      lastIndexOf source npm

      \n
      _.lastIndexOf(array, value, [fromIndex=array.length-1])
      \n\n

      这个方法类似 _.indexOf,除了它是从右到左遍历元素的。\n这个方法类似 _.indexOf except that it iterates over elements of\narray from right to left.

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要检索的数组

        \n
      2. \n
      3. value (*)

        要检索的值

        \n
      4. \n
      5. [fromIndex=array.length-1] (number)

        检索 index 的起点

        \n
      6. \n
      \n

      返回值 (number)

      \n

      返回匹配元素的 index,否则返回 -1

      \n
      \n

      示例

      \n
      _.lastIndexOf([1, 2, 1, 2], 2);\n// => 3\n\n// 使用了 `fromIndex`\n_.lastIndexOf([1, 2, 1, 2], 2, 2);\n// => 1\n
      \n
      \n
      \n\n
      " } + "html":"

      lastIndexOf source npm

      \n
      _.lastIndexOf(array, value, [fromIndex=array.length-1])
      \n\n

      这个方法类似 _.indexOf,除了它是从右到左遍历元素的。\n这个方法类似 _.indexOf except that it iterates over elements of\narray from right to left.

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要检索的数组

        \n
      2. \n
      3. value (*)

        要检索的值

        \n
      4. \n
      5. [fromIndex=array.length-1] (number)

        检索 index 的起点

        \n
      6. \n
      \n

      返回值 (number)

      \n

      返回匹配元素的 index,否则返回 -1

      \n
      \n

      示例

      \n
      _.lastIndexOf([1, 2, 1, 2], 2);\n// => 3\n\n// 使用了 `fromIndex`\n_.lastIndexOf([1, 2, 1, 2], 2, 2);\n// => 1\n
      \n
      \n
      \n\n
      " } ,{ "href":"/prototype-reverse", - "html":"

      prototype.reverse source npm

      \n
      _.prototype.reverse()
      \n\n

      反转数组,第一个元素移动到最后一位,第二个元素移动到倒数第二,类似这样。\n
      \n
      \n注意: 这个方法会改变数组,根据 Array#reverse

      \n
      \n\n

      返回值 (Array)

      \n

      返回原数组

      \n
      \n

      示例

      \n
      var array = [1, 2, 3];\n\n_.reverse(array);\n// => [3, 2, 1]\n\nconsole.log(array);\n// => [3, 2, 1]\n
      \n
      \n
      \n\n
      " } + "html":"

      prototype.reverse source npm

      \n
      _.prototype.reverse()
      \n\n

      反转数组,第一个元素移动到最后一位,第二个元素移动到倒数第二,类似这样。\n
      \n
      \n注意: 这个方法会改变数组,根据 Array#reverse

      \n
      \n\n

      返回值 (Array)

      \n

      返回原数组

      \n
      \n

      示例

      \n
      var array = [1, 2, 3];\n\n_.reverse(array);\n// => [3, 2, 1]\n\nconsole.log(array);\n// => [3, 2, 1]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/pull", - "html":"

      pull source npm

      \n
      _.pull(array, [values])
      \n\n

      移除所有经过 SameValueZero 等值比较为 true 的元素\n
      \n
      \n注意: 不同于 _.without,这个方法会改变数组。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要调整的数组

        \n
      2. \n
      3. [values] (...*)

        要移除的值

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回数组本身

      \n
      \n

      示例

      \n
      var array = [1, 2, 3, 1, 2, 3];\n\n_.pull(array, 2, 3);\nconsole.log(array);\n// => [1, 1]\n
      \n
      \n
      \n\n
      " } + "html":"

      pull source npm

      \n
      _.pull(array, [values])
      \n\n

      移除所有经过 SameValueZero 等值比较为 true 的元素\n
      \n
      \n注意: 不同于 _.without,这个方法会改变数组。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要调整的数组

        \n
      2. \n
      3. [values] (...*)

        要移除的值

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回数组本身

      \n
      \n

      示例

      \n
      var array = [1, 2, 3, 1, 2, 3];\n\n_.pull(array, 2, 3);\nconsole.log(array);\n// => [1, 1]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/pullAll", - "html":"

      pullAll source npm

      \n
      _.pullAll(array, values)
      \n\n

      这个方式类似 _.pull,除了它接受数组形式的一系列值。\n
      \n
      \n注意: 不同于 _.difference,这个方法会改变数组。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要调整的数组

        \n
      2. \n
      3. values (Array)

        要移除的值

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回数组本身

      \n
      \n

      示例

      \n
      var array = [1, 2, 3, 1, 2, 3];\n\n_.pull(array, [2, 3]);\nconsole.log(array);\n// => [1, 1]\n
      \n
      \n
      \n\n
      " } + "html":"

      pullAll source npm

      \n
      _.pullAll(array, values)
      \n\n

      这个方式类似 _.pull,除了它接受数组形式的一系列值。\n
      \n
      \n注意: 不同于 _.difference,这个方法会改变数组。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要调整的数组

        \n
      2. \n
      3. values (Array)

        要移除的值

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回数组本身

      \n
      \n

      示例

      \n
      var array = [1, 2, 3, 1, 2, 3];\n\n_.pull(array, [2, 3]);\nconsole.log(array);\n// => [1, 1]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/pullAllBy", - "html":"

      pullAllBy source npm

      \n
      _.pullAllBy(array, values, [iteratee=_.identity])
      \n\n

      这个方法类似 _.pullAll,除了它接受一个 comparator 调用每一个数组元素的值。 comparator 会传入一个参数:(value)。\n
      \n
      \n注意: 不同于 _.differenceBy,这个方法会改变数组。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要调整的数组

        \n
      2. \n
      3. values (Array)

        要移除的值

        \n
      4. \n
      5. [iteratee=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      6. \n
      \n

      返回值 (Array)

      \n

      返回数组本身

      \n
      \n

      示例

      \n
      var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];\n\n_.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');\nconsole.log(array);\n// => [{ 'x': 2 }]\n
      \n
      \n
      \n\n
      " } + "html":"

      pullAllBy source npm

      \n
      _.pullAllBy(array, values, [iteratee=_.identity])
      \n\n

      这个方法类似 _.pullAll,除了它接受一个 comparator 调用每一个数组元素的值。 comparator 会传入一个参数:(value)。\n
      \n
      \n注意: 不同于 _.differenceBy,这个方法会改变数组。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要调整的数组

        \n
      2. \n
      3. values (Array)

        要移除的值

        \n
      4. \n
      5. [iteratee=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      6. \n
      \n

      返回值 (Array)

      \n

      返回数组本身

      \n
      \n

      示例

      \n
      var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];\n\n_.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');\nconsole.log(array);\n// => [{ 'x': 2 }]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/pullAt", - "html":"

      pullAt source npm

      \n
      _.pullAt(array, [indexes])
      \n\n

      根据给的 indexes 移除对应的数组元素并返回被移除的元素。\n
      \n
      \n注意: 不同于 _.at,这个方法会改变数组。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要调整的数组

        \n
      2. \n
      3. [indexes] (...(number|number[])

        indexes 可以是特殊的数组队列,或者个别的单个或多个参数

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回被移除的元素数组

      \n
      \n

      示例

      \n
      var array = [5, 10, 15, 20];\nvar evens = _.pullAt(array, 1, 3);\n\nconsole.log(array);\n// => [5, 15]\n\nconsole.log(evens);\n// => [10, 20]\n
      \n
      \n
      \n\n
      " } + "html":"

      pullAt source npm

      \n
      _.pullAt(array, [indexes])
      \n\n

      根据给的 indexes 移除对应的数组元素并返回被移除的元素。\n
      \n
      \n注意: 不同于 _.at,这个方法会改变数组。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要调整的数组

        \n
      2. \n
      3. [indexes] (...(number|number[])

        indexes 可以是特殊的数组队列,或者个别的单个或多个参数

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回被移除的元素数组

      \n
      \n

      示例

      \n
      var array = [5, 10, 15, 20];\nvar evens = _.pullAt(array, 1, 3);\n\nconsole.log(array);\n// => [5, 15]\n\nconsole.log(evens);\n// => [10, 20]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/remove", - "html":"

      remove source npm

      \n
      _.remove(array, [predicate=_.identity])
      \n\n

      移除经过 predicate 处理为真值的元素,并返回被移除的元素。predicate 会传入3个参数:(value, index, array)\n
      \n
      \n注意: Unlike _.filter,这个方法会改变数组。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要调整的数组

        \n
      2. \n
      3. [predicate=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回被移除的元素的数组

      \n
      \n

      示例

      \n
      var array = [1, 2, 3, 4];\nvar evens = _.remove(array, function(n) {\n  return n % 2 == 0;\n});\n\nconsole.log(array);\n// => [1, 3]\n\nconsole.log(evens);\n// => [2, 4]\n
      \n
      \n
      \n\n
      " } + "html":"

      remove source npm

      \n
      _.remove(array, [predicate=_.identity])
      \n\n

      移除经过 predicate 处理为真值的元素,并返回被移除的元素。predicate 会传入3个参数:(value, index, array)\n
      \n
      \n注意: Unlike _.filter,这个方法会改变数组。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要调整的数组

        \n
      2. \n
      3. [predicate=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回被移除的元素的数组

      \n
      \n

      示例

      \n
      var array = [1, 2, 3, 4];\nvar evens = _.remove(array, function(n) {\n  return n % 2 == 0;\n});\n\nconsole.log(array);\n// => [1, 3]\n\nconsole.log(evens);\n// => [2, 4]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/slice", - "html":"

      slice source npm

      \n
      _.slice(array, [start=0], [end=array.length])
      \n\n

      创建一个裁剪后的数组,从 start 到 end 的位置,但不包括 end 本身的位置。\n
      \n
      \n注意: 这个方法用于代替 Array#slice\n来确保数组正确返回

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要裁剪的数组

        \n
      2. \n
      3. [start=0] (number)

        开始位置

        \n
      4. \n
      5. [end=array.length] (number)

        结束位置

        \n
      6. \n
      \n

      返回值 (Array)

      \n

      返回裁剪后的数组

      \n
      \n
      \n\n
      " } + "html":"

      slice source npm

      \n
      _.slice(array, [start=0], [end=array.length])
      \n\n

      创建一个裁剪后的数组,从 start 到 end 的位置,但不包括 end 本身的位置。\n
      \n
      \n注意: 这个方法用于代替 Array#slice\n来确保数组正确返回

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要裁剪的数组

        \n
      2. \n
      3. [start=0] (number)

        开始位置

        \n
      4. \n
      5. [end=array.length] (number)

        结束位置

        \n
      6. \n
      \n

      返回值 (Array)

      \n

      返回裁剪后的数组

      \n
      \n
      \n\n
      " } ,{ "href":"/sortedIndex", - "html":"

      sortedIndex source npm

      \n
      _.sortedIndex(array, value)
      \n\n

      使用二进制的方式检索来决定 value 应该插入在数组中位置。它的 index 应该尽可能的小以保证数组的排序。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要检索的已排序数组

        \n
      2. \n
      3. value (*)

        要评估位置的值

        \n
      4. \n
      \n

      返回值 (number)

      \n

      返回 value 应该在数组中插入的 index。

      \n
      \n

      示例

      \n
      _.sortedIndex([30, 50], 40);\n// => 1\n\n_.sortedIndex([4, 5], 4);\n// => 0\n
      \n
      \n
      \n\n
      " } + "html":"

      sortedIndex source npm

      \n
      _.sortedIndex(array, value)
      \n\n

      使用二进制的方式检索来决定 value 应该插入在数组中位置。它的 index 应该尽可能的小以保证数组的排序。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要检索的已排序数组

        \n
      2. \n
      3. value (*)

        要评估位置的值

        \n
      4. \n
      \n

      返回值 (number)

      \n

      返回 value 应该在数组中插入的 index。

      \n
      \n

      示例

      \n
      _.sortedIndex([30, 50], 40);\n// => 1\n\n_.sortedIndex([4, 5], 4);\n// => 0\n
      \n
      \n
      \n\n
      " } ,{ "href":"/sortedIndexBy", - "html":"

      sortedIndexBy source npm

      \n
      _.sortedIndexBy(array, value, [iteratee=_.identity])
      \n\n

      这个方法类似 _.sortedIndex,除了它接受一个 iteratee 调用每一个数组和值来计算排序。iteratee 会传入一个参数:(value)。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要检索的已排序数组

        \n
      2. \n
      3. value (*)

        要评估位置的值

        \n
      4. \n
      5. [iteratee=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      6. \n
      \n

      返回值 (number)

      \n

      返回 value 应该在数组中插入的 index。

      \n
      \n

      示例

      \n
      var dict = { 'thirty': 30, 'forty': 40, 'fifty': 50 };\n\n_.sortedIndexBy(['thirty', 'fifty'], 'forty', _.propertyOf(dict));\n// => 1\n\n// 使用了 `_.property` 回调结果\n_.sortedIndexBy([{ 'x': 4 }, { 'x': 5 }], { 'x': 4 }, 'x');\n// => 0\n
      \n
      \n
      \n\n
      " } + "html":"

      sortedIndexBy source npm

      \n
      _.sortedIndexBy(array, value, [iteratee=_.identity])
      \n\n

      这个方法类似 _.sortedIndex,除了它接受一个 iteratee 调用每一个数组和值来计算排序。iteratee 会传入一个参数:(value)。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要检索的已排序数组

        \n
      2. \n
      3. value (*)

        要评估位置的值

        \n
      4. \n
      5. [iteratee=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      6. \n
      \n

      返回值 (number)

      \n

      返回 value 应该在数组中插入的 index。

      \n
      \n

      示例

      \n
      var dict = { 'thirty': 30, 'forty': 40, 'fifty': 50 };\n\n_.sortedIndexBy(['thirty', 'fifty'], 'forty', _.propertyOf(dict));\n// => 1\n\n// 使用了 `_.property` 回调结果\n_.sortedIndexBy([{ 'x': 4 }, { 'x': 5 }], { 'x': 4 }, 'x');\n// => 0\n
      \n
      \n
      \n\n
      " } ,{ "href":"/sortedIndexOf", - "html":"

      sortedIndexOf source npm

      \n
      _.sortedIndexOf(array, value)
      \n\n

      这个方法类似 _.indexOf,除了它是执行二进制来检索已经排序的数组的。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要检索的数组

        \n
      2. \n
      3. value (*)

        要评估位置的值

        \n
      4. \n
      \n

      返回值 (number)

      \n

      返回匹配值的 index ,否则返回 -1.

      \n
      \n

      示例

      \n
      _.sortedIndexOf([1, 1, 2, 2], 2);\n// => 2\n
      \n
      \n
      \n\n
      " } + "html":"

      sortedIndexOf source npm

      \n
      _.sortedIndexOf(array, value)
      \n\n

      这个方法类似 _.indexOf,除了它是执行二进制来检索已经排序的数组的。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要检索的数组

        \n
      2. \n
      3. value (*)

        要评估位置的值

        \n
      4. \n
      \n

      返回值 (number)

      \n

      返回匹配值的 index ,否则返回 -1.

      \n
      \n

      示例

      \n
      _.sortedIndexOf([1, 1, 2, 2], 2);\n// => 2\n
      \n
      \n
      \n\n
      " } ,{ "href":"/sortedLastIndex", - "html":"

      sortedLastIndex source npm

      \n
      _.sortedLastIndex(array, value)
      \n\n

      这个方法类似 _.sortedIndex,除了它返回在 value 中尽可能大的 index 位置。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要检索的已排序数组

        \n
      2. \n
      3. value (*)

        要评估位置的值

        \n
      4. \n
      \n

      返回值 (number)

      \n

      返回 value 应该在数组中插入的 index。

      \n
      \n

      示例

      \n
      _.sortedLastIndex([4, 5], 4);\n// => 1\n
      \n
      \n
      \n\n
      " } + "html":"

      sortedLastIndex source npm

      \n
      _.sortedLastIndex(array, value)
      \n\n

      这个方法类似 _.sortedIndex,除了它返回在 value 中尽可能大的 index 位置。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要检索的已排序数组

        \n
      2. \n
      3. value (*)

        要评估位置的值

        \n
      4. \n
      \n

      返回值 (number)

      \n

      返回 value 应该在数组中插入的 index。

      \n
      \n

      示例

      \n
      _.sortedLastIndex([4, 5], 4);\n// => 1\n
      \n
      \n
      \n\n
      " } ,{ "href":"/sortedLastIndexBy", - "html":"

      sortedLastIndexBy source npm

      \n
      _.sortedLastIndexBy(array, value, [iteratee=_.identity])
      \n\n

      这个方法类似 _.sortedLastIndex,除了它接受一个 iteratee 调用每一个数组和值来计算排序。iteratee 会传入一个参数:(value)。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要检索的已排序数组

        \n
      2. \n
      3. value (*)

        要评估位置的值

        \n
      4. \n
      5. [iteratee=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      6. \n
      \n

      返回值 (number)

      \n

      返回 value 应该在数组中插入的 index。

      \n
      \n

      示例

      \n
      // 使用了 `_.property` 的回调结果\n_.sortedLastIndexBy([{ 'x': 4 }, { 'x': 5 }], { 'x': 4 }, 'x');\n// => 1\n
      \n
      \n
      \n\n
      " } + "html":"

      sortedLastIndexBy source npm

      \n
      _.sortedLastIndexBy(array, value, [iteratee=_.identity])
      \n\n

      这个方法类似 _.sortedLastIndex,除了它接受一个 iteratee 调用每一个数组和值来计算排序。iteratee 会传入一个参数:(value)。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要检索的已排序数组

        \n
      2. \n
      3. value (*)

        要评估位置的值

        \n
      4. \n
      5. [iteratee=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      6. \n
      \n

      返回值 (number)

      \n

      返回 value 应该在数组中插入的 index。

      \n
      \n

      示例

      \n
      // 使用了 `_.property` 的回调结果\n_.sortedLastIndexBy([{ 'x': 4 }, { 'x': 5 }], { 'x': 4 }, 'x');\n// => 1\n
      \n
      \n
      \n\n
      " } ,{ "href":"/sortedLastIndexOf", - "html":"

      sortedLastIndexOf source npm

      \n
      _.sortedLastIndexOf(array, value)
      \n\n

      这个方法类似 _.lastIndexOf,除了它是执行二进制来检索已经排序的数组的。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要检索的数组

        \n
      2. \n
      3. value (*)

        要评估位置的值

        \n
      4. \n
      \n

      返回值 (number)

      \n

      返回匹配值的 index ,否则返回 -1.

      \n
      \n

      示例

      \n
      _.sortedLastIndexOf([1, 1, 2, 2], 2);\n// => 3\n
      \n
      \n
      \n\n
      " } + "html":"

      sortedLastIndexOf source npm

      \n
      _.sortedLastIndexOf(array, value)
      \n\n

      这个方法类似 _.lastIndexOf,除了它是执行二进制来检索已经排序的数组的。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要检索的数组

        \n
      2. \n
      3. value (*)

        要评估位置的值

        \n
      4. \n
      \n

      返回值 (number)

      \n

      返回匹配值的 index ,否则返回 -1.

      \n
      \n

      示例

      \n
      _.sortedLastIndexOf([1, 1, 2, 2], 2);\n// => 3\n
      \n
      \n
      \n\n
      " } ,{ "href":"/sortedUniq", - "html":"

      sortedUniq source npm

      \n
      _.sortedUniq(array)
      \n\n

      这个方法类似 _.uniq,除了它会排序并优化数组。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        要调整的数组

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回一个不重复的数组

      \n
      \n

      示例

      \n
      _.sortedUniq([1, 1, 2]);\n// => [1, 2]\n
      \n
      \n
      \n\n
      " } + "html":"

      sortedUniq source npm

      \n
      _.sortedUniq(array)
      \n\n

      这个方法类似 _.uniq,除了它会排序并优化数组。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        要调整的数组

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回一个不重复的数组

      \n
      \n

      示例

      \n
      _.sortedUniq([1, 1, 2]);\n// => [1, 2]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/sortedUniqBy", - "html":"

      sortedUniqBy source npm

      \n
      _.sortedUniqBy(array, [iteratee])
      \n\n

      这个方法类似 _.uniqBy,除了它接受一个 iteratee 调用每一个数组和值来排序并优化数组。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        要调整的数组

        \n
      2. \n
      3. [iteratee] (Function)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回一个不重复的数组

      \n
      \n

      示例

      \n
      _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);\n// => [1.1, 2.2]\n
      \n
      \n
      \n\n
      " } + "html":"

      sortedUniqBy source npm

      \n
      _.sortedUniqBy(array, [iteratee])
      \n\n

      这个方法类似 _.uniqBy,除了它接受一个 iteratee 调用每一个数组和值来排序并优化数组。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        要调整的数组

        \n
      2. \n
      3. [iteratee] (Function)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回一个不重复的数组

      \n
      \n

      示例

      \n
      _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);\n// => [1.1, 2.2]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/tail", - "html":"

      tail source npm

      \n
      _.tail(array)
      \n\n

      获取数组中除了第一个元素的剩余数组

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        要检索的数组

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回数组中除了第一个元素的剩余数组

      \n
      \n

      示例

      \n
      _.tail([1, 2, 3]);\n// => [2, 3]\n
      \n
      \n
      \n\n
      " } + "html":"

      tail source npm

      \n
      _.tail(array)
      \n\n

      获取数组中除了第一个元素的剩余数组

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        要检索的数组

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回数组中除了第一个元素的剩余数组

      \n
      \n

      示例

      \n
      _.tail([1, 2, 3]);\n// => [2, 3]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/take", - "html":"

      take source npm

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

      从数组的起始元素开始提取 N 个元素。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要处理的数组

        \n
      2. \n
      3. [n=1] (number)

        要提取的个数

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回提取的元素数组

      \n
      \n

      示例

      \n
      _.take([1, 2, 3]);\n// => [1]\n\n_.take([1, 2, 3], 2);\n// => [1, 2]\n\n_.take([1, 2, 3], 5);\n// => [1, 2, 3]\n\n_.take([1, 2, 3], 0);\n// => []\n
      \n
      \n
      \n\n
      " } + "html":"

      take source npm

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

      从数组的起始元素开始提取 N 个元素。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要处理的数组

        \n
      2. \n
      3. [n=1] (number)

        要提取的个数

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回提取的元素数组

      \n
      \n

      示例

      \n
      _.take([1, 2, 3]);\n// => [1]\n\n_.take([1, 2, 3], 2);\n// => [1, 2]\n\n_.take([1, 2, 3], 5);\n// => [1, 2, 3]\n\n_.take([1, 2, 3], 0);\n// => []\n
      \n
      \n
      \n\n
      " } ,{ "href":"/takeRight", - "html":"

      takeRight source npm

      \n
      _.takeRight(array, [n=1])
      \n\n

      从数组的结束元素开始提取 N 个数组

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要处理的数组

        \n
      2. \n
      3. [n=1] (number)

        要提取的个数

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回提取的元素数组

      \n
      \n

      示例

      \n
      _.takeRight([1, 2, 3]);\n// => [3]\n\n_.takeRight([1, 2, 3], 2);\n// => [2, 3]\n\n_.takeRight([1, 2, 3], 5);\n// => [1, 2, 3]\n\n_.takeRight([1, 2, 3], 0);\n// => []\n
      \n
      \n
      \n\n
      " } + "html":"

      takeRight source npm

      \n
      _.takeRight(array, [n=1])
      \n\n

      从数组的结束元素开始提取 N 个数组

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要处理的数组

        \n
      2. \n
      3. [n=1] (number)

        要提取的个数

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回提取的元素数组

      \n
      \n

      示例

      \n
      _.takeRight([1, 2, 3]);\n// => [3]\n\n_.takeRight([1, 2, 3], 2);\n// => [2, 3]\n\n_.takeRight([1, 2, 3], 5);\n// => [1, 2, 3]\n\n_.takeRight([1, 2, 3], 0);\n// => []\n
      \n
      \n
      \n\n
      " } ,{ "href":"/takeRightWhile", - "html":"

      takeRightWhile source npm

      \n
      _.takeRightWhile(array, [predicate=_.identity])
      \n\n

      从数组的最右边开始提取数组,直到 predicate 返回假值。predicate 会传入三个参数:(value, index, array)。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要处理的数组

        \n
      2. \n
      3. [predicate=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回提取的元素数组

      \n
      \n

      示例

      \n
      var resolve = _.partial(_.map, _, 'user');\n\nvar users = [\n  { 'user': 'barney',  'active': true },\n  { 'user': 'fred',    'active': false },\n  { 'user': 'pebbles', 'active': false }\n];\n\nresolve( _.takeRightWhile(users, function(o) { return !o.active; }) );\n// => ['fred', 'pebbles']\n\n// 使用了 `_.matches` 的回调结果\nresolve( _.takeRightWhile(users, { 'user': 'pebbles', 'active': false }) );\n// => ['pebbles']\n\n// 使用了 `_.matchesProperty` 的回调结果\nresolve( _.takeRightWhile(users, ['active', false]) );\n// => ['fred', 'pebbles']\n\n// 使用了 `_.property` 的回调结果\nresolve( _.takeRightWhile(users, 'active') );\n// => []\n
      \n
      \n
      \n\n
      " } + "html":"

      takeRightWhile source npm

      \n
      _.takeRightWhile(array, [predicate=_.identity])
      \n\n

      从数组的最右边开始提取数组,直到 predicate 返回假值。predicate 会传入三个参数:(value, index, array)。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要处理的数组

        \n
      2. \n
      3. [predicate=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回提取的元素数组

      \n
      \n

      示例

      \n
      var resolve = _.partial(_.map, _, 'user');\n\nvar users = [\n  { 'user': 'barney',  'active': true },\n  { 'user': 'fred',    'active': false },\n  { 'user': 'pebbles', 'active': false }\n];\n\nresolve( _.takeRightWhile(users, function(o) { return !o.active; }) );\n// => ['fred', 'pebbles']\n\n// 使用了 `_.matches` 的回调结果\nresolve( _.takeRightWhile(users, { 'user': 'pebbles', 'active': false }) );\n// => ['pebbles']\n\n// 使用了 `_.matchesProperty` 的回调结果\nresolve( _.takeRightWhile(users, ['active', false]) );\n// => ['fred', 'pebbles']\n\n// 使用了 `_.property` 的回调结果\nresolve( _.takeRightWhile(users, 'active') );\n// => []\n
      \n
      \n
      \n\n
      " } ,{ "href":"/takeWhile", - "html":"

      takeWhile source npm

      \n
      _.takeWhile(array, [predicate=_.identity])
      \n\n

      从数组的开始提取数组,直到 predicate 返回假值。predicate 会传入三个参数:(value, index, array)。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要处理的数组

        \n
      2. \n
      3. [predicate=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回提取的元素数组

      \n
      \n

      示例

      \n
      var resolve = _.partial(_.map, _, 'user');\n\nvar users = [\n  { 'user': 'barney',  'active': false },\n  { 'user': 'fred',    'active': false},\n  { 'user': 'pebbles', 'active': true }\n];\n\nresolve( _.takeWhile(users, function(o) { return !o.active; }) );\n// => ['barney', 'fred']\n\n// 使用了 `_.matches` 的回调结果\nresolve( _.takeWhile(users, { 'user': 'barney', 'active': false }) );\n// => ['barney']\n\n// 使用了 `_.matchesProperty` 的回调结果\nresolve( _.takeWhile(users, ['active', false]) );\n// => ['barney', 'fred']\n\n// 使用了 `_.property` 的回调结果\nresolve( _.takeWhile(users, 'active') );\n// => []\n
      \n
      \n
      \n\n
      " } + "html":"

      takeWhile source npm

      \n
      _.takeWhile(array, [predicate=_.identity])
      \n\n

      从数组的开始提取数组,直到 predicate 返回假值。predicate 会传入三个参数:(value, index, array)。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要处理的数组

        \n
      2. \n
      3. [predicate=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回提取的元素数组

      \n
      \n

      示例

      \n
      var resolve = _.partial(_.map, _, 'user');\n\nvar users = [\n  { 'user': 'barney',  'active': false },\n  { 'user': 'fred',    'active': false},\n  { 'user': 'pebbles', 'active': true }\n];\n\nresolve( _.takeWhile(users, function(o) { return !o.active; }) );\n// => ['barney', 'fred']\n\n// 使用了 `_.matches` 的回调结果\nresolve( _.takeWhile(users, { 'user': 'barney', 'active': false }) );\n// => ['barney']\n\n// 使用了 `_.matchesProperty` 的回调结果\nresolve( _.takeWhile(users, ['active', false]) );\n// => ['barney', 'fred']\n\n// 使用了 `_.property` 的回调结果\nresolve( _.takeWhile(users, 'active') );\n// => []\n
      \n
      \n
      \n\n
      " } ,{ "href":"/union", - "html":"

      union source npm

      \n
      _.union([arrays])
      \n\n

      创建顺序排列的唯一值组成的数组。所有值经过 SameValueZero 等值比较。

      \n
      \n\n

      参数

      \n
        \n
      1. [arrays] (...Array)

        需要处理的数组队列

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回处理好的数组

      \n
      \n

      示例

      \n
      _.union([2, 1], [4, 2], [1, 2]);\n// => [2, 1, 4]\n
      \n
      \n
      \n\n
      " } + "html":"

      union source npm

      \n
      _.union([arrays])
      \n\n

      创建顺序排列的唯一值组成的数组。所有值经过 SameValueZero 等值比较。

      \n
      \n\n

      参数

      \n
        \n
      1. [arrays] (...Array)

        需要处理的数组队列

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回处理好的数组

      \n
      \n

      示例

      \n
      _.union([2, 1], [4, 2], [1, 2]);\n// => [2, 1, 4]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/unionBy", - "html":"

      unionBy source npm

      \n
      _.unionBy([arrays], [iteratee=_.identity])
      \n\n

      这个方法类似 _.union,除了它接受一个 iteratee 调用每一个数组和值。iteratee 会传入一个参数:(value)。

      \n
      \n\n

      参数

      \n
        \n
      1. [arrays] (...Array)

        需要处理的数组队列

        \n
      2. \n
      3. [iteratee=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回处理好的数组

      \n
      \n

      示例

      \n
      _.unionBy([2.1, 1.2], [4.3, 2.4], Math.floor);\n// => [2.1, 1.2, 4.3]\n\n// 使用了 `_.property` 的回调结果\n_.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n// => [{ 'x': 1 }, { 'x': 2 }]\n
      \n
      \n
      \n\n
      " } + "html":"

      unionBy source npm

      \n
      _.unionBy([arrays], [iteratee=_.identity])
      \n\n

      这个方法类似 _.union,除了它接受一个 iteratee 调用每一个数组和值。iteratee 会传入一个参数:(value)。

      \n
      \n\n

      参数

      \n
        \n
      1. [arrays] (...Array)

        需要处理的数组队列

        \n
      2. \n
      3. [iteratee=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回处理好的数组

      \n
      \n

      示例

      \n
      _.unionBy([2.1, 1.2], [4.3, 2.4], Math.floor);\n// => [2.1, 1.2, 4.3]\n\n// 使用了 `_.property` 的回调结果\n_.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n// => [{ 'x': 1 }, { 'x': 2 }]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/unionWith", - "html":"

      unionWith source npm

      \n
      _.unionWith([arrays], [comparator])
      \n\n

      这个方法类似 _.union,\n除了它接受一个 comparator 调用每一个数组元素的值。 comparator 会传入2个参数:(arrVal, othVal)。

      \n
      \n\n

      参数

      \n
        \n
      1. [arrays] (...Array)

        需要处理的数组队列

        \n
      2. \n
      3. [comparator] (Function)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回处理好的数组

      \n
      \n

      示例

      \n
      var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\nvar others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n\n_.unionWith(objects, others, _.isEqual);\n// => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n
      \n
      \n
      \n\n
      " } + "html":"

      unionWith source npm

      \n
      _.unionWith([arrays], [comparator])
      \n\n

      这个方法类似 _.union,\n除了它接受一个 comparator 调用每一个数组元素的值。 comparator 会传入2个参数:(arrVal, othVal)。

      \n
      \n\n

      参数

      \n
        \n
      1. [arrays] (...Array)

        需要处理的数组队列

        \n
      2. \n
      3. [comparator] (Function)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回处理好的数组

      \n
      \n

      示例

      \n
      var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\nvar others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n\n_.unionWith(objects, others, _.isEqual);\n// => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/uniq", - "html":"

      uniq source npm

      \n
      _.uniq(array)
      \n\n

      创建一个不重复的数组副本。使用了 SameValueZero 等值比较。只有首次出现的元素才会被保留。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要处理的数组

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回不重复的数组

      \n
      \n

      示例

      \n
      _.uniq([2, 1, 2]);\n// => [2, 1]\n
      \n
      \n
      \n\n
      " } + "html":"

      uniq source npm

      \n
      _.uniq(array)
      \n\n

      创建一个不重复的数组副本。使用了 SameValueZero 等值比较。只有首次出现的元素才会被保留。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要处理的数组

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回不重复的数组

      \n
      \n

      示例

      \n
      _.uniq([2, 1, 2]);\n// => [2, 1]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/uniqBy", - "html":"

      uniqBy source npm

      \n
      _.uniqBy(array, [iteratee=_.identity])
      \n\n

      这个方法类似 _.uniq,除了它接受一个 iteratee 调用每一个数组和值来计算唯一性。iteratee 会传入一个参数:(value)。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要处理的数组

        \n
      2. \n
      3. [iteratee=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回不重复的数组

      \n
      \n

      示例

      \n
      _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n// => [2.1, 1.2]\n\n// 使用了 `_.property` 的回调结果\n_.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n// => [{ 'x': 1 }, { 'x': 2 }]\n
      \n
      \n
      \n\n
      " } + "html":"

      uniqBy source npm

      \n
      _.uniqBy(array, [iteratee=_.identity])
      \n\n

      这个方法类似 _.uniq,除了它接受一个 iteratee 调用每一个数组和值来计算唯一性。iteratee 会传入一个参数:(value)。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要处理的数组

        \n
      2. \n
      3. [iteratee=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回不重复的数组

      \n
      \n

      示例

      \n
      _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n// => [2.1, 1.2]\n\n// 使用了 `_.property` 的回调结果\n_.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n// => [{ 'x': 1 }, { 'x': 2 }]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/uniqWith", - "html":"

      uniqWith source npm

      \n
      _.uniqWith(array, [comparator])
      \n\n

      这个方法类似 _.uniq,除了它接受一个 comparator 来比较计算唯一性。 comparator 会传入2个参数:(arrVal, othVal)

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要处理的数组

        \n
      2. \n
      3. [comparator] (Function)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回不重复的数组

      \n
      \n

      示例

      \n
      var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 },  { 'x': 1, 'y': 2 }];\n\n_.uniqWith(objects, _.isEqual);\n// => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n
      \n
      \n
      \n\n
      " } + "html":"

      uniqWith source npm

      \n
      _.uniqWith(array, [comparator])
      \n\n

      这个方法类似 _.uniq,除了它接受一个 comparator 来比较计算唯一性。 comparator 会传入2个参数:(arrVal, othVal)

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要处理的数组

        \n
      2. \n
      3. [comparator] (Function)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回不重复的数组

      \n
      \n

      示例

      \n
      var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 },  { 'x': 1, 'y': 2 }];\n\n_.uniqWith(objects, _.isEqual);\n// => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/unzip", - "html":"

      unzip source npm

      \n
      _.unzip(array)
      \n\n

      这个方法类似 _.zip,除了它接收一个打包后的数组并且还原为打包前的状态。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要解包的已打包数组

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回一个解包后的数组

      \n
      \n

      示例

      \n
      var zipped = _.zip(['fred', 'barney'], [30, 40], [true, false]);\n// => [['fred', 30, true], ['barney', 40, false]]\n\n_.unzip(zipped);\n// => [['fred', 'barney'], [30, 40], [true, false]]\n
      \n
      \n
      \n\n
      " } + "html":"

      unzip source npm

      \n
      _.unzip(array)
      \n\n

      这个方法类似 _.zip,除了它接收一个打包后的数组并且还原为打包前的状态。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要解包的已打包数组

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回一个解包后的数组

      \n
      \n

      示例

      \n
      var zipped = _.zip(['fred', 'barney'], [30, 40], [true, false]);\n// => [['fred', 30, true], ['barney', 40, false]]\n\n_.unzip(zipped);\n// => [['fred', 'barney'], [30, 40], [true, false]]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/unzipWith", - "html":"

      unzipWith source npm

      \n
      _.unzipWith(array, [iteratee=_.identity])
      \n\n

      这个方法类似 _.unzip,除了它接受一个 iteratee 来决定如何重组解包后的数组。iteratee 会传入4个参数:(accumulator, value, index, group)。每组的第一个元素作为初始化的值

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要解包的已打包数组

        \n
      2. \n
      3. [iteratee=_.identity] (Function)

        决定如何重组解包后的元素

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回一个解包后的数组

      \n
      \n

      示例

      \n
      var zipped = _.zip([1, 2], [10, 20], [100, 200]);\n// => [[1, 10, 100], [2, 20, 200]]\n\n_.unzipWith(zipped, _.add);\n// => [3, 30, 300]\n
      \n
      \n
      \n\n
      " } + "html":"

      unzipWith source npm

      \n
      _.unzipWith(array, [iteratee=_.identity])
      \n\n

      这个方法类似 _.unzip,除了它接受一个 iteratee 来决定如何重组解包后的数组。iteratee 会传入4个参数:(accumulator, value, index, group)。每组的第一个元素作为初始化的值

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        需要解包的已打包数组

        \n
      2. \n
      3. [iteratee=_.identity] (Function)

        决定如何重组解包后的元素

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回一个解包后的数组

      \n
      \n

      示例

      \n
      var zipped = _.zip([1, 2], [10, 20], [100, 200]);\n// => [[1, 10, 100], [2, 20, 200]]\n\n_.unzipWith(zipped, _.add);\n// => [3, 30, 300]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/without", - "html":"

      without source npm

      \n
      _.without(array, [values])
      \n\n

      创建一个移除了所有提供的 values 的数组。使用了 SameValueZero 等值比较。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        要处理的数组

        \n
      2. \n
      3. [values] (...*)

        要排除的值

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回一个处理好的新数组

      \n
      \n

      示例

      \n
      _.without([1, 2, 1, 3], 1, 2);\n// => [3]\n
      \n
      \n
      \n\n
      " } + "html":"

      without source npm

      \n
      _.without(array, [values])
      \n\n

      创建一个移除了所有提供的 values 的数组。使用了 SameValueZero 等值比较。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        要处理的数组

        \n
      2. \n
      3. [values] (...*)

        要排除的值

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回一个处理好的新数组

      \n
      \n

      示例

      \n
      _.without([1, 2, 1, 3], 1, 2);\n// => [3]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/xor", - "html":"

      xor source npm

      \n
      _.xor([arrays])
      \n\n

      创建一个包含了所有唯一值的数组。使用了 symmetric difference 等值比较。

      \n
      \n\n

      参数

      \n
        \n
      1. [arrays] (...Array)

        要处理的数组

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      包含了所有唯一值的新数组

      \n
      \n

      示例

      \n
      _.xor([2, 1], [4, 2]);\n// => [1, 4]\n
      \n
      \n
      \n\n
      " } + "html":"

      xor source npm

      \n
      _.xor([arrays])
      \n\n

      创建一个包含了所有唯一值的数组。使用了 symmetric difference 等值比较。

      \n
      \n\n

      参数

      \n
        \n
      1. [arrays] (...Array)

        要处理的数组

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      包含了所有唯一值的新数组

      \n
      \n

      示例

      \n
      _.xor([2, 1], [4, 2]);\n// => [1, 4]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/xorBy", - "html":"

      xorBy source npm

      \n
      _.xorBy([arrays], [iteratee=_.identity])
      \n\n

      这个方法类似 _.xor,除了它接受一个 iteratee 调用每一个数组和值。iteratee 会传入一个参数:(value)。

      \n
      \n\n

      参数

      \n
        \n
      1. [arrays] (...Array)

        要处理的数组

        \n
      2. \n
      3. [iteratee=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      包含了所有唯一值的新数组

      \n
      \n

      示例

      \n
      _.xorBy([2.1, 1.2], [4.3, 2.4], Math.floor);\n// => [1.2, 4.3]\n\n// 使用了 `_.property` 的回调结果\n_.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n// => [{ 'x': 2 }]\n
      \n
      \n
      \n\n
      " } + "html":"

      xorBy source npm

      \n
      _.xorBy([arrays], [iteratee=_.identity])
      \n\n

      这个方法类似 _.xor,除了它接受一个 iteratee 调用每一个数组和值。iteratee 会传入一个参数:(value)。

      \n
      \n\n

      参数

      \n
        \n
      1. [arrays] (...Array)

        要处理的数组

        \n
      2. \n
      3. [iteratee=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      包含了所有唯一值的新数组

      \n
      \n

      示例

      \n
      _.xorBy([2.1, 1.2], [4.3, 2.4], Math.floor);\n// => [1.2, 4.3]\n\n// 使用了 `_.property` 的回调结果\n_.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n// => [{ 'x': 2 }]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/xorWith", - "html":"

      xorWith source npm

      \n
      _.xorWith([arrays], [comparator])
      \n\n

      这个方法类似 _.xor,除了它接受一个 comparator 调用每一个数组元素的值。 comparator 会传入2个参数:(arrVal, othVal)。

      \n
      \n\n

      参数

      \n
        \n
      1. [arrays] (...Array)

        要处理的数组

        \n
      2. \n
      3. [comparator] (Function)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      包含了所有唯一值的新数组

      \n
      \n

      示例

      \n
      var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\nvar others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n\n_.xorWith(objects, others, _.isEqual);\n// => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n
      \n
      \n
      \n\n
      " } + "html":"

      xorWith source npm

      \n
      _.xorWith([arrays], [comparator])
      \n\n

      这个方法类似 _.xor,除了它接受一个 comparator 调用每一个数组元素的值。 comparator 会传入2个参数:(arrVal, othVal)。

      \n
      \n\n

      参数

      \n
        \n
      1. [arrays] (...Array)

        要处理的数组

        \n
      2. \n
      3. [comparator] (Function)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      包含了所有唯一值的新数组

      \n
      \n

      示例

      \n
      var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\nvar others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n\n_.xorWith(objects, others, _.isEqual);\n// => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/zip", - "html":"

      zip source npm

      \n
      _.zip([arrays])
      \n\n

      创建一个打包所有元素后的数组。第一个元素包含所有提供数组的第一个元素,第二个包含所有提供数组的第二个元素,以此类推。

      \n
      \n\n

      参数

      \n
        \n
      1. [arrays] (...Array)

        要处理的数组队列

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回一个打包后的数组

      \n
      \n

      示例

      \n
      _.zip(['fred', 'barney'], [30, 40], [true, false]);\n// => [['fred', 30, true], ['barney', 40, false]]\n
      \n
      \n
      \n\n
      " } + "html":"

      zip source npm

      \n
      _.zip([arrays])
      \n\n

      创建一个打包所有元素后的数组。第一个元素包含所有提供数组的第一个元素,第二个包含所有提供数组的第二个元素,以此类推。

      \n
      \n\n

      参数

      \n
        \n
      1. [arrays] (...Array)

        要处理的数组队列

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回一个打包后的数组

      \n
      \n

      示例

      \n
      _.zip(['fred', 'barney'], [30, 40], [true, false]);\n// => [['fred', 30, true], ['barney', 40, false]]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/zipObject", - "html":"

      zipObject source npm

      \n
      _.zipObject([props=[]], [values=[]])
      \n\n

      这个方法类似 _.fromPairs,除了它接受2个数组,一个作为属性名,一个作为属性值。

      \n
      \n\n

      参数

      \n
        \n
      1. [props=[]] (Array)

        属性名

        \n
      2. \n
      3. [values=[]] (Array)

        属性值

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回一个新的对象

      \n
      \n

      示例

      \n
      _.zipObject(['fred', 'barney'], [30, 40]);\n// => { 'fred': 30, 'barney': 40 }\n
      \n
      \n
      \n\n
      " } + "html":"

      zipObject source npm

      \n
      _.zipObject([props=[]], [values=[]])
      \n\n

      这个方法类似 _.fromPairs,除了它接受2个数组,一个作为属性名,一个作为属性值。

      \n
      \n\n

      参数

      \n
        \n
      1. [props=[]] (Array)

        属性名

        \n
      2. \n
      3. [values=[]] (Array)

        属性值

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回一个新的对象

      \n
      \n

      示例

      \n
      _.zipObject(['a', 'b'], [1, 2]);\n// => { 'a': 1, 'b': 2 }\n
      \n
      \n
      \n\n
      " } +,{ "href":"/zipObjectDeep", + "html":"

      zipObjectDeep source npm

      \n
      _.zipObjectDeep([props=[]], [values=[]])
      \n\n

      这个方法类似 _.zipObject,除了支持属性路径。\nThis method is like _.zipObject except that it supports property paths.

      \n
      \n\n

      参数

      \n
        \n
      1. [props=[]] (Array)

        属性名

        \n
      2. \n
      3. [values=[]] (Array)

        属性值

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回新的对象

      \n
      \n

      示例

      \n
      _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);\n// => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }\n
      \n
      \n
      \n\n
      " } ,{ "href":"/zipWith", - "html":"

      zipWith source npm

      \n
      _.zipWith([arrays], [iteratee=_.identity])
      \n\n

      这个方法类似 _.zip,除了它接受一个 iteratee 决定如何重组值。iteratee 会传入4个参数:(accumulator, value, index, group)。每组的第一个元素作为初始化的值

      \n
      \n\n

      参数

      \n
        \n
      1. [arrays] (...Array)

        要处理的数组队列

        \n
      2. \n
      3. [iteratee=_.identity] (Function)

        这个函数决定如何重组值

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回一个打包后的数组

      \n
      \n

      示例

      \n
      _.zipWith([1, 2], [10, 20], [100, 200], _.add);\n// => [111, 222]\n
      \n
      \n
      \n\n
      " } + "html":"

      zipWith source npm

      \n
      _.zipWith([arrays])
      \n\n

      这个方法类似 _.zip,\n除了它接受一个 iteratee 决定如何重组值。\niteratee 会调用每一组元素。

      \n
      \n\n

      参数

      \n
        \n
      1. [arrays] (...Array)

        要处理的数组队列

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回一个打包后的数组

      \n
      \n

      示例

      \n
      _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {\n  return a + b + c;\n});\n// => [111, 222]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/_", - "html":"

      _ source

      \n
      _(value)
      \n\n

      创建一个经 lodash 包装后的对象会启用隐式链。返回的数组、集合、方法相互之间能够链式调用。\n检索唯一值或返回原始值会自动解除链条并返回计算后的值,否则需要调用 _#value 方法解除链(即获得计算结果)。\n
      \n
      \n显式链式调用,在任何情况下需要先用 _#value 解除链后,才能使用 _.chain 开启。\n
      \n
      \n链式方法是惰性计算的,直到隐式或者显式调用了 _#value 才会执行计算。\n
      \n
      \n惰性计算接受几种支持 shortcut fusion 的方法,shortcut fusion 是一种通过合并链式 iteratee 调用从而大大降低迭代的次数以提高执行性能的方式。\nSections of a chain sequence qualify for shortcut fusion if the section is\napplied to an array of at least two hundred elements and any iteratees\naccept only one argument. The heuristic for whether a section qualifies\nfor shortcut fusion is subject to change.\n
      \n
      \n链式方法支持定制版本,只要 _#value 包含或者间接包含在版本中。\n
      \n
      \n除了 lodash 的自身方法,包装后的对象还支持 ArrayString 的方法。\n
      \n
      \n支持 Array 的方法:
      \nconcat, join, pop, push, shift, sort, splice, 以及 unshift\n
      \n
      \n支持 String 的方法:
      \nreplace 以及 split\n
      \n
      \n支持 shortcut fusion 的方法:
      \nat, compact, drop, dropRight, dropWhile, filter, find,\nfindLast, head, initial, last, map, reject, reverse, slice,\ntail, take, takeRight, takeRightWhile, takeWhile, 以及 toArray\n
      \n
      \n默认不支持 链式调用 的方法:
      \nadd, attempt, camelCase, capitalize, ceil, clamp, clone,\ncloneDeep, cloneDeepWith, cloneWith, deburr, endsWith, eq,\nescape, escapeRegExp, every, find, findIndex, findKey,\nfindLast, findLastIndex, findLastKey, floor, get, gt, gte,\nhas, hasIn, head, identity, includes, indexOf, inRange,\ninvoke, isArguments, isArray, isArrayLike, isArrayLikeObject,\nisBoolean, isDate, isElement, isEmpty, isEqual, isEqualWith,\nisError, isFinite, isFunction, isInteger, isLength, isMatch,\nisMatchWith, isNaN, isNative, isNil, isNull, isNumber,\nisObject, isObjectLike, isPlainObject, isRegExp, isSafeInteger,\nisString, isUndefined, isTypedArray, join, kebabCase, last,\nlastIndexOf, lowerCase, lowerFirst, lt, lte, max, maxBy,\nmean, min, minBy, noConflict, noop, now, pad, padEnd,\npadStart, parseInt, pop, random, reduce, reduceRight, repeat,\nresult, round, runInContext, sample, shift, size, snakeCase,\nsome, sortedIndex, sortedIndexBy, sortedLastIndex, sortedLastIndexBy,\nstartCase, startsWith, subtract, sum, sumBy,template,times,toLower,toInteger,toLength,toNumber,toSafeInteger, toString,\ntoUpper, trim, trimEnd, trimStart, truncate, unescape, uniqueId,\nupperCase, upperFirst, value, 以及 words\n
      \n
      \n支持 链式调用 的方法:
      \nafter, ary, assign, assignIn, assignInWith, assignWith,\nat, before, bind, bindAll, bindKey, chain, chunk, commit,\ncompact, concat, conforms, constant, countBy, create, curry,\ndebounce, defaults, defaultsDeep, defer, delay, difference,\ndifferenceBy, differenceWith, drop, dropRight, dropRightWhile,\ndropWhile, fill, filter, flatten, flattenDeep, flip, flow,\nflowRight, forEach, forEachRight, forIn, forInRight, forOwn,\nforOwnRight, fromPairs, functions, functionsIn, groupBy, initial,\nintersection, intersectionBy, intersectionWith, invert,invokeMap,iteratee,keyBy,keys,keysIn,map,mapKeys,mapValues,matches,matchesProperty,memoize,merge,mergeWith,method,methodOf,mixin,negate,nthArg,omit,omitBy,once,orderBy,over,overArgs,overEvery,overSome,partial,partialRight,partition,pick,pickBy,plant,property,propertyOf,pull,pullAll,pullAllBy,pullAt,push,range,rangeRight,rearg,reject,remove,rest,reverse,sampleSize,set,setWith,shuffle,slice,sort,sortBy,splice,spread,tail,take,takeRight,takeRightWhile,takeWhile,tap,throttle,thru,toArray,toPairs,toPairsIn,toPath,toPlainObject,transform,unary,union,unionBy,unionWith,uniq,uniqBy,uniqWith,unset,unshift,unzip,unzipWith,values,valuesIn,without,wrap,xor,xorBy,xorWith,zip,zipObject`, 以及 zipWith

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        需要被包装为 lodash 实例的值.

        \n
      2. \n
      \n

      返回值 (Object)

      \n

      返回 lodash 包装后的实例

      \n
      \n

      示例

      \n
      function square(n) {\n  return n * n;\n}\n\nvar wrapped = _([1, 2, 3]);\n\n// 返回未包装的值\nwrapped.reduce(_.add);\n// => 6\n\n// 返回链式包装的值\nvar squares = wrapped.map(square);\n\n_.isArray(squares);\n// => false\n\n_.isArray(squares.value());\n// => true\n
      \n
      \n
      \n\n
      " } + "html":"

      _ source

      \n
      _(value)
      \n\n

      创建一个经 lodash 包装后的对象会启用隐式链。返回的数组、集合、方法相互之间能够链式调用。\n检索唯一值或返回原始值会自动解除链条并返回计算后的值,否则需要调用 _#value 方法解除链(即获得计算结果)。\n
      \n
      \n显式链式调用,在任何情况下需要先用 _#value 解除链后,才能使用 _.chain 开启。\n
      \n
      \n链式方法是惰性计算的,直到隐式或者显式调用了 _#value 才会执行计算。\n
      \n
      \n惰性计算接受几种支持 shortcut fusion 的方法,shortcut fusion 是一种通过合并链式 iteratee 调用从而大大降低迭代的次数以提高执行性能的方式。\nSections of a chain sequence qualify for shortcut fusion if the section is\napplied to an array of at least two hundred elements and any iteratees\naccept only one argument. The heuristic for whether a section qualifies\nfor shortcut fusion is subject to change.\n
      \n
      \n链式方法支持定制版本,只要 _#value 包含或者间接包含在版本中。\n
      \n
      \n除了 lodash 的自身方法,包装后的对象还支持 ArrayString 的方法。\n
      \n
      \n支持 Array 的方法:
      \nconcat, join, pop, push, shift, sort, splice, 以及 unshift\n
      \n
      \n支持 String 的方法:
      \nreplace 以及 split\n
      \n
      \n支持 shortcut fusion 的方法:
      \nat, compact, drop, dropRight, dropWhile, filter, find,\nfindLast, head, initial, last, map, reject, reverse, slice,\ntail, take, takeRight, takeRightWhile, takeWhile, 以及 toArray\n
      \n
      \n默认不支持 链式调用 的方法:
      \nadd, attempt, camelCase, capitalize, ceil, clamp, clone,\ncloneDeep, cloneDeepWith, cloneWith, deburr, endsWith, eq,\nescape, escapeRegExp, every, find, findIndex, findKey,\nfindLast, findLastIndex, findLastKey, floor, get, gt, gte,\nhas, hasIn, head, identity, includes, indexOf, inRange,\ninvoke, isArguments, isArray, isArrayLike, isArrayLikeObject,\nisBoolean, isDate, isElement, isEmpty, isEqual, isEqualWith,\nisError, isFinite, isFunction, isInteger, isLength, isMatch,\nisMatchWith, isNaN, isNative, isNil, isNull, isNumber,\nisObject, isObjectLike, isPlainObject, isRegExp, isSafeInteger,\nisString, isUndefined, isTypedArray, join, kebabCase, last,\nlastIndexOf, lowerCase, lowerFirst, lt, lte, max, maxBy,\nmean, min, minBy, noConflict, noop, now, pad, padEnd,\npadStart, parseInt, pop, random, reduce, reduceRight, repeat,\nresult, round, runInContext, sample, shift, size, snakeCase,\nsome, sortedIndex, sortedIndexBy, sortedLastIndex, sortedLastIndexBy,\nstartCase, startsWith, subtract, sum, sumBy,template,times,toLower,toInteger,toLength,toNumber,toSafeInteger, toString,\ntoUpper, trim, trimEnd, trimStart, truncate, unescape, uniqueId,\nupperCase, upperFirst, value, 以及 words\n
      \n
      \n支持 链式调用 的方法:
      \nafter, ary, assign, assignIn, assignInWith, assignWith,\nat, before, bind, bindAll, bindKey, chain, chunk, commit,\ncompact, concat, conforms, constant, countBy, create, curry,\ndebounce, defaults, defaultsDeep, defer, delay, difference,\ndifferenceBy, differenceWith, drop, dropRight, dropRightWhile,\ndropWhile, fill, filter, flatten, flattenDeep, flip, flow,\nflowRight, fromPairs, functions, functionsIn, groupBy, initial,\nintersection, intersectionBy, intersectionWith, invert, invokeMap,\niteratee, keyBy, keys, keysIn, map, mapKeys, mapValues,\nmatches, matchesProperty, memoize, merge, mergeWith, method,\nmethodOf, mixin, negate, nthArg, omit, omitBy, once, orderBy,\nover, overArgs, overEvery, overSome, partial, partialRight,\npartition, pick, pickBy, plant, property, propertyOf, pull,\npullAll, pullAllBy, pullAt, push, range, rangeRight, rearg,\nreject, remove, rest, reverse, sampleSize, set, setWith,\nshuffle, slice, sort, sortBy, splice, spread, tail, take,\ntakeRight, takeRightWhile, takeWhile, tap, throttle, thru,\ntoArray, toPairs, toPairsIn, toPath, toPlainObject, transform,\nunary, union, unionBy, unionWith, uniq, uniqBy, uniqWith,\nunset, unshift, unzip, unzipWith, values, valuesIn, without,\nwrap, xor, xorBy, xorWith, zip, zipObject, 以及 zipWith

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        需要被包装为 lodash 实例的值.

        \n
      2. \n
      \n

      返回值 (Object)

      \n

      返回 lodash 包装后的实例

      \n
      \n

      示例

      \n
      function square(n) {\n  return n * n;\n}\n\nvar wrapped = _([1, 2, 3]);\n\n// 返回未包装的值\nwrapped.reduce(_.add);\n// => 6\n\n// 返回链式包装的值\nvar squares = wrapped.map(square);\n\n_.isArray(squares);\n// => false\n\n_.isArray(squares.value());\n// => true\n
      \n
      \n
      \n\n
      " } ,{ "href":"/chain", - "html":"

      chain source

      \n
      _.chain(value)
      \n\n

      创建一个经 lodash 包装的对象以启用显式链模式,要解除链必须使用 _#value 方法。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要包装的值

        \n
      2. \n
      \n

      返回值 (Object)

      \n

      返回 lodash 包装的实例

      \n
      \n

      示例

      \n
      var users = [\n  { 'user': 'barney',  'age': 36 },\n  { 'user': 'fred',    'age': 40 },\n  { 'user': 'pebbles', 'age': 1 }\n];\n\nvar youngest = _\n  .chain(users)\n  .sortBy('age')\n  .map(function(o) {\n    return o.user + ' is ' + o.age;\n  })\n  .head()\n  .value();\n// => 'pebbles is 1'\n
      \n
      \n
      \n\n
      " } + "html":"

      chain source

      \n
      _.chain(value)
      \n\n

      创建一个经 lodash 包装的对象以启用显式链模式,要解除链必须使用 _#value 方法。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要包装的值

        \n
      2. \n
      \n

      返回值 (Object)

      \n

      返回 lodash 包装的实例

      \n
      \n

      示例

      \n
      var users = [\n  { 'user': 'barney',  'age': 36 },\n  { 'user': 'fred',    'age': 40 },\n  { 'user': 'pebbles', 'age': 1 }\n];\n\nvar youngest = _\n  .chain(users)\n  .sortBy('age')\n  .map(function(o) {\n    return o.user + ' is ' + o.age;\n  })\n  .head()\n  .value();\n// => 'pebbles is 1'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/prototype-at", - "html":"

      prototype.at source

      \n
      _.prototype.at([paths])
      \n\n

      这个方法是 _.at 的包装版本

      \n
      \n\n

      参数

      \n
        \n
      1. [paths] (...(string|string[])

        要选择元素的属性路径, 单独指定或者数组

        \n
      2. \n
      \n

      返回值 (Object)

      \n

      返回 lodash 的包装实例

      \n
      \n

      示例

      \n
      var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n\n_(object).at(['a[0].b.c', 'a[1]']).value();\n// => [3, 4]\n\n_(['a', 'b', 'c']).at(0, 2).value();\n// => ['a', 'c']\n
      \n
      \n
      \n\n
      " } + "html":"

      prototype.at source

      \n
      _.prototype.at([paths])
      \n\n

      这个方法是 _.at 的包装版本

      \n
      \n\n

      参数

      \n
        \n
      1. [paths] (...(string|string[])

        要选择元素的属性路径, 单独指定或者数组

        \n
      2. \n
      \n

      返回值 (Object)

      \n

      返回 lodash 的包装实例

      \n
      \n

      示例

      \n
      var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n\n_(object).at(['a[0].b.c', 'a[1]']).value();\n// => [3, 4]\n\n_(['a', 'b', 'c']).at(0, 2).value();\n// => ['a', 'c']\n
      \n
      \n
      \n\n
      " } ,{ "href":"/prototype-chain", - "html":"

      prototype.chain source

      \n
      _.prototype.chain()
      \n\n

      开启包装对象的显式链。

      \n
      \n\n

      返回值 (Object)

      \n

      返回 lodash 的包装实例

      \n
      \n

      示例

      \n
      var users = [\n  { 'user': 'barney', 'age': 36 },\n  { 'user': 'fred',   'age': 40 }\n];\n\n// 不启用显式链\n_(users).head();\n// => { 'user': 'barney', 'age': 36 }\n\n// 启用显式链\n_(users)\n  .chain()\n  .head()\n  .pick('user')\n  .value();\n// => { 'user': 'barney' }\n
      \n
      \n
      \n\n
      " } + "html":"

      prototype.chain source

      \n
      _.prototype.chain()
      \n\n

      开启包装对象的显式链。

      \n
      \n\n

      返回值 (Object)

      \n

      返回 lodash 的包装实例

      \n
      \n

      示例

      \n
      var users = [\n  { 'user': 'barney', 'age': 36 },\n  { 'user': 'fred',   'age': 40 }\n];\n\n// 不启用显式链\n_(users).head();\n// => { 'user': 'barney', 'age': 36 }\n\n// 启用显式链\n_(users)\n  .chain()\n  .head()\n  .pick('user')\n  .value();\n// => { 'user': 'barney' }\n
      \n
      \n
      \n\n
      " } ,{ "href":"/prototype-commit", - "html":"

      prototype.commit source

      \n
      _.prototype.commit()
      \n\n

      执行链式队列并返回结果

      \n
      \n\n

      返回值 (Object)

      \n

      返回 lodash 的包装实例

      \n
      \n

      示例

      \n
      var array = [1, 2];\nvar wrapped = _(array).push(3);\n\nconsole.log(array);\n// => [1, 2]\n\nwrapped = wrapped.commit();\nconsole.log(array);\n// => [1, 2, 3]\n\nwrapped.last();\n// => 3\n\nconsole.log(array);\n// => [1, 2, 3]\n
      \n
      \n
      \n\n
      " } + "html":"

      prototype.commit source

      \n
      _.prototype.commit()
      \n\n

      执行链式队列并返回结果

      \n
      \n\n

      返回值 (Object)

      \n

      返回 lodash 的包装实例

      \n
      \n

      示例

      \n
      var array = [1, 2];\nvar wrapped = _(array).push(3);\n\nconsole.log(array);\n// => [1, 2]\n\nwrapped = wrapped.commit();\nconsole.log(array);\n// => [1, 2, 3]\n\nwrapped.last();\n// => 3\n\nconsole.log(array);\n// => [1, 2, 3]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/prototype-next", - "html":"

      prototype.next source

      \n
      _.prototype.next()
      \n\n

      获得包装对象的下一个值,遵循 iterator 协议

      \n
      \n\n

      返回值 (Object)

      \n

      返回下一个 iterator 值

      \n
      \n

      示例

      \n
      var wrapped = _([1, 2]);\n\nwrapped.next();\n// => { 'done': false, 'value': 1 }\n\nwrapped.next();\n// => { 'done': false, 'value': 2 }\n\nwrapped.next();\n// => { 'done': true, 'value': undefined }\n
      \n
      \n
      \n\n
      " } + "html":"

      prototype.next source

      \n
      _.prototype.next()
      \n\n

      获得包装对象的下一个值,遵循 iterator 协议

      \n
      \n\n

      返回值 (Object)

      \n

      返回下一个 iterator 值

      \n
      \n

      示例

      \n
      var wrapped = _([1, 2]);\n\nwrapped.next();\n// => { 'done': false, 'value': 1 }\n\nwrapped.next();\n// => { 'done': false, 'value': 2 }\n\nwrapped.next();\n// => { 'done': true, 'value': undefined }\n
      \n
      \n
      \n\n
      " } ,{ "href":"/prototype-plant", - "html":"

      prototype.plant source

      \n
      _.prototype.plant(value)
      \n\n

      创建一个链式队列的拷贝,传入的值作为链式队列的值。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        替换原值的值

        \n
      2. \n
      \n

      返回值 (Object)

      \n

      返回 lodash 的包装实例

      \n
      \n

      示例

      \n
      function square(n) {\n  return n * n;\n}\n\nvar wrapped = _([1, 2]).map(square);\nvar other = wrapped.plant([3, 4]);\n\nother.value();\n// => [9, 16]\n\nwrapped.value();\n// => [1, 4]\n
      \n
      \n
      \n\n
      " } + "html":"

      prototype.plant source

      \n
      _.prototype.plant(value)
      \n\n

      创建一个链式队列的拷贝,传入的值作为链式队列的值。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        替换原值的值

        \n
      2. \n
      \n

      返回值 (Object)

      \n

      返回 lodash 的包装实例

      \n
      \n

      示例

      \n
      function square(n) {\n  return n * n;\n}\n\nvar wrapped = _([1, 2]).map(square);\nvar other = wrapped.plant([3, 4]);\n\nother.value();\n// => [9, 16]\n\nwrapped.value();\n// => [1, 4]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/prototype-Symbol-iterator", - "html":"

      prototype.Symbol.iterator source

      \n
      _.prototype.Symbol.iterator()
      \n\n

      启用包装对象为 iterable。

      \n
      \n\n

      返回值 (Object)

      \n

      返回包装对象

      \n
      \n

      示例

      \n
      var wrapped = _([1, 2]);\n\nwrapped[Symbol.iterator]() === wrapped;\n// => true\n\nArray.from(wrapped);\n// => [1, 2]\n
      \n
      \n
      \n\n
      " } + "html":"

      prototype.Symbol.iterator source

      \n
      _.prototype.Symbol.iterator()
      \n\n

      启用包装对象为 iterable。

      \n
      \n\n

      返回值 (Object)

      \n

      返回包装对象

      \n
      \n

      示例

      \n
      var wrapped = _([1, 2]);\n\nwrapped[Symbol.iterator]() === wrapped;\n// => true\n\nArray.from(wrapped);\n// => [1, 2]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/prototype-value", - "html":"

      prototype.value run, toJSON, valueOf source

      \n
      _.prototype.value()
      \n\n

      执行链式队列并提取解链后的值

      \n
      \n\n

      返回值 (*)

      \n

      返回解链后的值

      \n
      \n

      示例

      \n
      _([1, 2, 3]).value();\n// => [1, 2, 3]\n
      \n
      \n
      \n\n
      " } + "html":"

      prototype.value run, toJSON, valueOf source

      \n
      _.prototype.value()
      \n\n

      执行链式队列并提取解链后的值

      \n
      \n\n

      返回值 (*)

      \n

      返回解链后的值

      \n
      \n

      示例

      \n
      _([1, 2, 3]).value();\n// => [1, 2, 3]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/tap", - "html":"

      tap source

      \n
      _.tap(value, interceptor)
      \n\n

      这个方法调用一个 interceptor 并返回 valueinterceptor 传入一个参数:(value)\n目的是 进入 链的中间以便执行操作。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        提供给 interceptor 的值

        \n
      2. \n
      3. interceptor (Function)

        调用函数

        \n
      4. \n
      \n

      返回值 (*)

      \n

      返回 value

      \n
      \n

      示例

      \n
      _([1, 2, 3])\n .tap(function(array) {\n   array.pop();\n })\n .reverse()\n .value();\n// => [2, 1]\n
      \n
      \n
      \n\n
      " } + "html":"

      tap source

      \n
      _.tap(value, interceptor)
      \n\n

      这个方法调用一个 interceptor 并返回 valueinterceptor 传入一个参数:(value)\n目的是 进入 链的中间以便执行操作。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        提供给 interceptor 的值

        \n
      2. \n
      3. interceptor (Function)

        调用函数

        \n
      4. \n
      \n

      返回值 (*)

      \n

      返回 value

      \n
      \n

      示例

      \n
      _([1, 2, 3])\n .tap(function(array) {\n   array.pop();\n })\n .reverse()\n .value();\n// => [2, 1]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/thru", - "html":"

      thru source

      \n
      _.thru(value, interceptor)
      \n\n

      这个方法类似 _.tap, 除了它返回 interceptor 的返回结果

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        提供给 interceptor 的值

        \n
      2. \n
      3. interceptor (Function)

        调用函数

        \n
      4. \n
      \n

      返回值 (*)

      \n

      返回 interceptor 的返回结果

      \n
      \n

      示例

      \n
      _('  abc  ')\n .chain()\n .trim()\n .thru(function(value) {\n   return [value];\n })\n .value();\n// => ['abc']\n
      \n
      \n
      \n\n
      " } + "html":"

      thru source

      \n
      _.thru(value, interceptor)
      \n\n

      这个方法类似 _.tap, 除了它返回 interceptor 的返回结果

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        提供给 interceptor 的值

        \n
      2. \n
      3. interceptor (Function)

        调用函数

        \n
      4. \n
      \n

      返回值 (*)

      \n

      返回 interceptor 的返回结果

      \n
      \n

      示例

      \n
      _('  abc  ')\n .chain()\n .trim()\n .thru(function(value) {\n   return [value];\n })\n .value();\n// => ['abc']\n
      \n
      \n
      \n\n
      " } ,{ "href":"/wrapperFlatMap", - "html":"

      wrapperFlatMap source

      \n
      _.wrapperFlatMap([iteratee=_.identity])
      \n\n

      这个方法是 _.flatMap 的包装版本。

      \n
      \n\n

      参数

      \n
        \n
      1. [iteratee=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      2. \n
      \n

      返回值 (Object)

      \n

      返回 lodash 的包装实例

      \n
      \n

      示例

      \n
      function duplicate(n) {\n  return [n, n];\n}\n\n_([1, 2]).flatMap(duplicate).value();\n// => [1, 1, 2, 2]\n
      \n
      \n
      \n\n
      " } + "html":"

      wrapperFlatMap source

      \n
      _.wrapperFlatMap([iteratee=_.identity])
      \n\n

      这个方法是 _.flatMap 的包装版本。

      \n
      \n\n

      参数

      \n
        \n
      1. [iteratee=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      2. \n
      \n

      返回值 (Object)

      \n

      返回 lodash 的包装实例

      \n
      \n

      示例

      \n
      function duplicate(n) {\n  return [n, n];\n}\n\n_([1, 2]).flatMap(duplicate).value();\n// => [1, 1, 2, 2]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/countBy", - "html":"

      countBy source npm

      \n
      _.countBy(collection, [iteratee=_.identity])
      \n\n

      创建一个组成对象,key是经过 iteratee 处理的集合的结果,value 是处理结果的次数。 iteratee 会传入一个参数:(value)。

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        需要遍历的集合

        \n
      2. \n
      3. [iteratee=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回一个组成汇总的对象

      \n
      \n

      示例

      \n
      _.countBy([6.1, 4.2, 6.3], Math.floor);\n// => { '4': 1, '6': 2 }\n\n_.countBy(['one', 'two', 'three'], 'length');\n// => { '3': 2, '5': 1 }\n
      \n
      \n
      \n\n
      " } + "html":"

      countBy source npm

      \n
      _.countBy(collection, [iteratee=_.identity])
      \n\n

      创建一个组成对象,key是经过 iteratee 处理的集合的结果,value 是处理结果的次数。 iteratee 会传入一个参数:(value)。

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        需要遍历的集合

        \n
      2. \n
      3. [iteratee=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回一个组成汇总的对象

      \n
      \n

      示例

      \n
      _.countBy([6.1, 4.2, 6.3], Math.floor);\n// => { '4': 1, '6': 2 }\n\n_.countBy(['one', 'two', 'three'], 'length');\n// => { '3': 2, '5': 1 }\n
      \n
      \n
      \n\n
      " } ,{ "href":"/every", - "html":"

      every source npm

      \n
      _.every(collection, [predicate=_.identity])
      \n\n

      通过 predicate 检查集合中的元素是否都返回 真值,只要 predicate 返回一次假值,遍历就停止,并返回 false。
      predicate 会传入3个参数:(value, index|key, collection)

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        需要遍历的集合

        \n
      2. \n
      3. [predicate=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (boolean)

      \n

      返回 true,如果所有元素经 predicate 检查都为真值,否则返回 false。

      \n
      \n

      示例

      \n
      _.every([true, 1, null, 'yes'], Boolean);\n// => false\n\nvar users = [\n  { 'user': 'barney', 'active': false },\n  { 'user': 'fred',   'active': false }\n];\n\n// 使用了 `_.matches` 的回调结果\n_.every(users, { 'user': 'barney', 'active': false });\n// => false\n\n// 使用了 `_.matchesProperty` 的回调结果\n_.every(users, ['active', false]);\n// => true\n\n// 使用了 `_.property` 的回调结果\n_.every(users, 'active');\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      every source npm

      \n
      _.every(collection, [predicate=_.identity])
      \n\n

      通过 predicate 检查集合中的元素是否都返回 真值,只要 predicate 返回一次假值,遍历就停止,并返回 false。\npredicate 会传入3个参数:(value, index|key, collection)

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        需要遍历的集合

        \n
      2. \n
      3. [predicate=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (boolean)

      \n

      返回 true,如果所有元素经 predicate 检查都为真值,否则返回 false。

      \n
      \n

      示例

      \n
      _.every([true, 1, null, 'yes'], Boolean);\n// => false\n\nvar users = [\n  { 'user': 'barney', 'active': false },\n  { 'user': 'fred',   'active': false }\n];\n\n// 使用了 `_.matches` 的回调结果\n_.every(users, { 'user': 'barney', 'active': false });\n// => false\n\n// 使用了 `_.matchesProperty` 的回调结果\n_.every(users, ['active', false]);\n// => true\n\n// 使用了 `_.property` 的回调结果\n_.every(users, 'active');\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/filter", - "html":"

      filter source npm

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

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

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        需要遍历的集合

        \n
      2. \n
      3. [predicate=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回筛选结果的新数组

      \n
      \n

      示例

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

      filter source npm

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

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

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        需要遍历的集合

        \n
      2. \n
      3. [predicate=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回筛选结果的新数组

      \n
      \n

      示例

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

      find source npm

      \n
      _.find(collection, [predicate=_.identity])
      \n\n

      遍历集合中的元素,返回最先经 predicate 检查为真值的元素。 predicate 会传入3个元素:(value, index|key, collection)。

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        要检索的集合

        \n
      2. \n
      3. [predicate=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (*)

      \n

      返回匹配元素,否则返回 undefined

      \n
      \n

      示例

      \n
      var resolve = _.partial(_.result, _, 'user');\n\nvar users = [\n  { 'user': 'barney',  'age': 36, 'active': true },\n  { 'user': 'fred',    'age': 40, 'active': false },\n  { 'user': 'pebbles', 'age': 1,  'active': true }\n];\n\nresolve( _.find(users, function(o) { return o.age < 40; }) );\n// => 'barney'\n\n// 使用了 `_.matches` 的回调结果\nresolve( _.find(users, { 'age': 1, 'active': true }) );\n// => 'pebbles'\n\n// 使用了 `_.matchesProperty` 的回调结果\nresolve( _.find(users, ['active', false]) );\n// => 'fred'\n\n// 使用了 `_.property` 的回调结果\nresolve( _.find(users, 'active') );\n// => 'barney'\n
      \n
      \n
      \n\n
      " } + "html":"

      find source npm

      \n
      _.find(collection, [predicate=_.identity])
      \n\n

      遍历集合中的元素,返回最先经 predicate 检查为真值的元素。 predicate 会传入3个元素:(value, index|key, collection)。

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        要检索的集合

        \n
      2. \n
      3. [predicate=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (*)

      \n

      返回匹配元素,否则返回 undefined

      \n
      \n

      示例

      \n
      var resolve = _.partial(_.result, _, 'user');\n\nvar users = [\n  { 'user': 'barney',  'age': 36, 'active': true },\n  { 'user': 'fred',    'age': 40, 'active': false },\n  { 'user': 'pebbles', 'age': 1,  'active': true }\n];\n\nresolve( _.find(users, function(o) { return o.age < 40; }) );\n// => 'barney'\n\n// 使用了 `_.matches` 的回调结果\nresolve( _.find(users, { 'age': 1, 'active': true }) );\n// => 'pebbles'\n\n// 使用了 `_.matchesProperty` 的回调结果\nresolve( _.find(users, ['active', false]) );\n// => 'fred'\n\n// 使用了 `_.property` 的回调结果\nresolve( _.find(users, 'active') );\n// => 'barney'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/findLast", - "html":"

      findLast source npm

      \n
      _.findLast(collection, [predicate=_.identity])
      \n\n

      这个方法类似 _.find,除了它是从右至左遍历集合的。

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        要检索的集合

        \n
      2. \n
      3. [predicate=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (*)

      \n

      返回匹配元素,否则返回 undefined

      \n
      \n

      示例

      \n
      _.findLast([1, 2, 3, 4], function(n) {\n  return n % 2 == 1;\n});\n// => 3\n
      \n
      \n
      \n\n
      " } + "html":"

      findLast source npm

      \n
      _.findLast(collection, [predicate=_.identity])
      \n\n

      这个方法类似 _.find,除了它是从右至左遍历集合的。

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        要检索的集合

        \n
      2. \n
      3. [predicate=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (*)

      \n

      返回匹配元素,否则返回 undefined

      \n
      \n

      示例

      \n
      _.findLast([1, 2, 3, 4], function(n) {\n  return n % 2 == 1;\n});\n// => 3\n
      \n
      \n
      \n\n
      " } ,{ "href":"/forEach", - "html":"

      forEach each source npm

      \n
      _.forEach(collection, [iteratee=_.identity])
      \n\n

      调用 iteratee 遍历集合中的元素,iteratee 会传入3个参数:(value, index|key, collection)。\n如果显式的返回 false ,iteratee 会提前退出。\n
      \n
      \n注意: 与其他集合方法一样,对象的 length 属性也会被遍历,避免这种情况,可以用 _.forIn 或者 _.forOwn 代替。

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        需要遍历的集合

        \n
      2. \n
      3. [iteratee=_.identity] (Function)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Array|Object)

      \n

      返回集合

      \n
      \n

      示例

      \n
      _([1, 2]).forEach(function(value) {\n  console.log(value);\n});\n// => 输出 `1` 和 `2`\n\n_.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n  console.log(key);\n});\n// => 输出 'a' 和 'b' (不保证遍历的顺序)\n
      \n
      \n
      \n\n
      " } + "html":"

      forEach each source npm

      \n
      _.forEach(collection, [iteratee=_.identity])
      \n\n

      调用 iteratee 遍历集合中的元素,iteratee 会传入3个参数:(value, index|key, collection)。\n如果显式的返回 false ,iteratee 会提前退出。\n
      \n
      \n注意: 与其他集合方法一样,对象的 length 属性也会被遍历,避免这种情况,可以用 _.forIn 或者 _.forOwn 代替。

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        需要遍历的集合

        \n
      2. \n
      3. [iteratee=_.identity] (Function)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Array|Object)

      \n

      返回集合

      \n
      \n

      示例

      \n
      _([1, 2]).forEach(function(value) {\n  console.log(value);\n});\n// => 输出 `1` 和 `2`\n\n_.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n  console.log(key);\n});\n// => 输出 'a' 和 'b' (不保证遍历的顺序)\n
      \n
      \n
      \n\n
      " } ,{ "href":"/forEachRight", - "html":"

      forEachRight eachRight source npm

      \n
      _.forEachRight(collection, [iteratee=_.identity])
      \n\n

      这个方法类似 _.forEach,除了它是从右到左遍历的集合中的元素的。

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        需要遍历的集合

        \n
      2. \n
      3. [iteratee=_.identity] (Function)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Array|Object)

      \n

      返回集合

      \n
      \n

      示例

      \n
      _.forEachRight([1, 2], function(value) {\n  console.log(value);\n});\n// => 输出 `2` 和 `1`\n
      \n
      \n
      \n\n
      " } + "html":"

      forEachRight eachRight source npm

      \n
      _.forEachRight(collection, [iteratee=_.identity])
      \n\n

      这个方法类似 _.forEach,除了它是从右到左遍历的集合中的元素的。

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        需要遍历的集合

        \n
      2. \n
      3. [iteratee=_.identity] (Function)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Array|Object)

      \n

      返回集合

      \n
      \n

      示例

      \n
      _.forEachRight([1, 2], function(value) {\n  console.log(value);\n});\n// => 输出 `2` 和 `1`\n
      \n
      \n
      \n\n
      " } ,{ "href":"/groupBy", - "html":"

      groupBy source npm

      \n
      _.groupBy(collection, [iteratee=_.identity])
      \n\n

      创建一个对象组成,key 是经 iteratee 处理的结果, value 是产生 key 的元素数组。 iteratee 会传入1个参数:(value)。

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        需要遍历的集合

        \n
      2. \n
      3. [iteratee=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回一个组成汇总的对象

      \n
      \n

      示例

      \n
      _.groupBy([6.1, 4.2, 6.3], Math.floor);\n// => { '4': [4.2], '6': [6.1, 6.3] }\n\n// 使用了 `_.property` 的回调结果\n_.groupBy(['one', 'two', 'three'], 'length');\n// => { '3': ['one', 'two'], '5': ['three'] }\n
      \n
      \n
      \n\n
      " } + "html":"

      groupBy source npm

      \n
      _.groupBy(collection, [iteratee=_.identity])
      \n\n

      创建一个对象组成,key 是经 iteratee 处理的结果, value 是产生 key 的元素数组。 iteratee 会传入1个参数:(value)。

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        需要遍历的集合

        \n
      2. \n
      3. [iteratee=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回一个组成汇总的对象

      \n
      \n

      示例

      \n
      _.groupBy([6.1, 4.2, 6.3], Math.floor);\n// => { '4': [4.2], '6': [6.1, 6.3] }\n\n// 使用了 `_.property` 的回调结果\n_.groupBy(['one', 'two', 'three'], 'length');\n// => { '3': ['one', 'two'], '5': ['three'] }\n
      \n
      \n
      \n\n
      " } ,{ "href":"/includes", - "html":"

      includes source npm

      \n
      _.includes(collection, value, [fromIndex=0])
      \n\n

      检查 值 是否在 集合中,如果集合是字符串,那么检查 值 是否在字符串中。\n其他情况用 SameValueZero 等值比较。\n如果指定 fromIndex 是负数,从结尾开始检索。

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object|string)

        要检索的集合

        \n
      2. \n
      3. value (*)

        要检索的值

        \n
      4. \n
      5. [fromIndex=0] (number)

        要检索的 index 位置

        \n
      6. \n
      \n

      返回值 (boolean)

      \n

      如果找到 value 返回 ture, 否则返回 false。

      \n
      \n

      示例

      \n
      _.includes([1, 2, 3], 1);\n// => true\n\n_.includes([1, 2, 3], 1, 2);\n// => false\n\n_.includes({ 'user': 'fred', 'age': 40 }, 'fred');\n// => true\n\n_.includes('pebbles', 'eb');\n// => true\n
      \n
      \n
      \n\n
      " } + "html":"

      includes source npm

      \n
      _.includes(collection, value, [fromIndex=0])
      \n\n

      检查 值 是否在 集合中,如果集合是字符串,那么检查 值 是否在字符串中。\n其他情况用 SameValueZero 等值比较。\n如果指定 fromIndex 是负数,从结尾开始检索。

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object|string)

        要检索的集合

        \n
      2. \n
      3. value (*)

        要检索的值

        \n
      4. \n
      5. [fromIndex=0] (number)

        要检索的 index 位置

        \n
      6. \n
      \n

      返回值 (boolean)

      \n

      如果找到 value 返回 ture, 否则返回 false。

      \n
      \n

      示例

      \n
      _.includes([1, 2, 3], 1);\n// => true\n\n_.includes([1, 2, 3], 1, 2);\n// => false\n\n_.includes({ 'user': 'fred', 'age': 40 }, 'fred');\n// => true\n\n_.includes('pebbles', 'eb');\n// => true\n
      \n
      \n
      \n\n
      " } ,{ "href":"/invokeMap", - "html":"

      invokeMap source npm

      \n
      _.invokeMap(collection, path, [args])
      \n\n

      调用 path 的方法处理集合中的每一个元素,返回处理的数组。\n如何附加的参数会传入到调用方法中。如果方法名是个函数,集合中的每个元素都会被调用到。

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        需要遍历的集合

        \n
      2. \n
      3. path (Array|Function|string)

        要调用的方法名 或者 这个函数会处理每一个元素

        \n
      4. \n
      5. [args] (...*)

        The arguments to invoke each method with.

        \n
      6. \n
      \n

      返回值 (Array)

      \n

      返回数组结果

      \n
      \n

      示例

      \n
      _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');\n// => [[1, 5, 7], [1, 2, 3]]\n\n_.invokeMap([123, 456], String.prototype.split, '');\n// => [['1', '2', '3'], ['4', '5', '6']]\n
      \n
      \n
      \n\n
      " } + "html":"

      invokeMap source npm

      \n
      _.invokeMap(collection, path, [args])
      \n\n

      调用 path 的方法处理集合中的每一个元素,返回处理的数组。\n如何附加的参数会传入到调用方法中。如果方法名是个函数,集合中的每个元素都会被调用到。

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        需要遍历的集合

        \n
      2. \n
      3. path (Array|Function|string)

        要调用的方法名 或者 这个函数会处理每一个元素

        \n
      4. \n
      5. [args] (...*)

        The arguments to invoke each method with.

        \n
      6. \n
      \n

      返回值 (Array)

      \n

      返回数组结果

      \n
      \n

      示例

      \n
      _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');\n// => [[1, 5, 7], [1, 2, 3]]\n\n_.invokeMap([123, 456], String.prototype.split, '');\n// => [['1', '2', '3'], ['4', '5', '6']]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/keyBy", - "html":"

      keyBy source npm

      \n
      _.keyBy(collection, [iteratee=_.identity])
      \n\n

      创建一个对象组成。key 是经 iteratee 处理的结果,value 是产生key的元素。\niteratee 会传入1个参数:(value)。

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        需要遍历的集合

        \n
      2. \n
      3. [iteratee=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回一个组成汇总的对象

      \n
      \n

      示例

      \n
      var keyData = [\n  { 'dir': 'left', 'code': 97 },\n  { 'dir': 'right', 'code': 100 }\n];\n\n_.keyBy(keyData, 'dir');\n// => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }\n\n_.keyBy(keyData, function(o) {\n  return String.fromCharCode(o.code);\n});\n// => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n
      \n
      \n
      \n\n
      " } + "html":"

      keyBy source npm

      \n
      _.keyBy(collection, [iteratee=_.identity])
      \n\n

      创建一个对象组成。key 是经 iteratee 处理的结果,value 是产生key的元素。\niteratee 会传入1个参数:(value)。

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        需要遍历的集合

        \n
      2. \n
      3. [iteratee=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回一个组成汇总的对象

      \n
      \n

      示例

      \n
      var keyData = [\n  { 'dir': 'left', 'code': 97 },\n  { 'dir': 'right', 'code': 100 }\n];\n\n_.keyBy(keyData, 'dir');\n// => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }\n\n_.keyBy(keyData, function(o) {\n  return String.fromCharCode(o.code);\n});\n// => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n
      \n
      \n
      \n\n
      " } ,{ "href":"/map", - "html":"

      map source npm

      \n
      _.map(collection, [iteratee=_.identity])
      \n\n

      创建一个经过 iteratee 处理的集合中每一个元素的结果数组。\niteratee 会传入3个参数:(value, index|key, collection)。\n
      \n
      \n有许多 lodash 的方法以 iteratees 的身份守护其工作,例如:\n_.every, _.filter, _.map, _.mapValues, _.reject, 以及 _.some\n
      \n
      \n被守护的有:
      \nary, curry, curryRight, drop, dropRight, every, fill,\ninvert, parseInt, random, range, rangeRight, slice, some,\nsortBy, take, takeRight, template, trim, trimEnd, trimStart,\n以及 words

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        需要遍历的集合

        \n
      2. \n
      3. [iteratee=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回映射后的新数组

      \n
      \n

      示例

      \n
      function square(n) {\n  return n * n;\n}\n\n_.map([1, 2], square);\n// => [3, 6]\n\n_.map({ 'a': 1, 'b': 2 }, square);\n// => [3, 6] (无法保证遍历的顺序)\n\nvar users = [\n  { 'user': 'barney' },\n  { 'user': 'fred' }\n];\n\n// 使用了 `_.property` 的回调结果\n_.map(users, 'user');\n// => ['barney', 'fred']\n
      \n
      \n
      \n\n
      " } + "html":"

      map source npm

      \n
      _.map(collection, [iteratee=_.identity])
      \n\n

      创建一个经过 iteratee 处理的集合中每一个元素的结果数组。\niteratee 会传入3个参数:(value, index|key, collection)。\n
      \n
      \n有许多 lodash 的方法以 iteratees 的身份守护其工作,例如:\n_.every, _.filter, _.map, _.mapValues, _.reject, 以及 _.some\n
      \n
      \n被守护的有:
      \nary, curry, curryRight, drop, dropRight, every, fill,\ninvert, parseInt, random, range, rangeRight, slice, some,\nsortBy, take, takeRight, template, trim, trimEnd, trimStart,\n以及 words

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        需要遍历的集合

        \n
      2. \n
      3. [iteratee=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回映射后的新数组

      \n
      \n

      示例

      \n
      function square(n) {\n  return n * n;\n}\n\n_.map([1, 2], square);\n// => [3, 6]\n\n_.map({ 'a': 1, 'b': 2 }, square);\n// => [3, 6] (无法保证遍历的顺序)\n\nvar users = [\n  { 'user': 'barney' },\n  { 'user': 'fred' }\n];\n\n// 使用了 `_.property` 的回调结果\n_.map(users, 'user');\n// => ['barney', 'fred']\n
      \n
      \n
      \n\n
      " } ,{ "href":"/orderBy", - "html":"

      orderBy source npm

      \n
      _.orderBy(collection, [iteratees=[_.identity]], [orders])
      \n\n

      这个方法类似 _.sortBy,除了它允许指定 iteratees 结果如何排序。\n如果没指定 orders,所有值以升序排序。\n其他情况,指定 "desc" 降序,指定 "asc" 升序其对应值。

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        需要遍历的集合

        \n
      2. \n
      3. [iteratees=[_.identity]] (Function[]|Object[]|string[])

        通过 iteratees 决定排序

        \n
      4. \n
      5. [orders] (string[])

        决定 iteratees 的排序方法

        \n
      6. \n
      \n

      返回值 (Array)

      \n

      排序排序后的新数组

      \n
      \n

      示例

      \n
      var resolve = _.partial(_.map, _, _.values);\n\nvar users = [\n  { 'user': 'fred',   'age': 48 },\n  { 'user': 'barney', 'age': 34 },\n  { 'user': 'fred',   'age': 42 },\n  { 'user': 'barney', 'age': 36 }\n];\n\n// 以 `user` 升序排序 再 以 `age` 降序排序。\nresolve( _.orderBy(users, ['user', 'age'], ['asc', 'desc']) );\n// => [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 42]]\n
      \n
      \n
      \n\n
      " } + "html":"

      orderBy source npm

      \n
      _.orderBy(collection, [iteratees=[_.identity]], [orders])
      \n\n

      这个方法类似 _.sortBy,除了它允许指定 iteratees 结果如何排序。\n如果没指定 orders,所有值以升序排序。\n其他情况,指定 "desc" 降序,指定 "asc" 升序其对应值。

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        需要遍历的集合

        \n
      2. \n
      3. [iteratees=[_.identity]] (Function[]|Object[]|string[])

        通过 iteratees 决定排序

        \n
      4. \n
      5. [orders] (string[])

        决定 iteratees 的排序方法

        \n
      6. \n
      \n

      返回值 (Array)

      \n

      排序排序后的新数组

      \n
      \n

      示例

      \n
      var resolve = _.partial(_.map, _, _.values);\n\nvar users = [\n  { 'user': 'fred',   'age': 48 },\n  { 'user': 'barney', 'age': 34 },\n  { 'user': 'fred',   'age': 42 },\n  { 'user': 'barney', 'age': 36 }\n];\n\n// 以 `user` 升序排序 再 以 `age` 降序排序。\nresolve( _.orderBy(users, ['user', 'age'], ['asc', 'desc']) );\n// => [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 42]]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/partition", - "html":"

      partition source npm

      \n
      _.partition(collection, [predicate=_.identity])
      \n\n

      创建一个拆分为两部分的数组。\n第一部分是 predicate 检查为真值的,第二部分是 predicate 检查为假值的。\npredicate 会传入3个参数:(value, index|key, collection)。

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        需要遍历的集合

        \n
      2. \n
      3. [predicate=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回分组元素的数组

      \n
      \n

      示例

      \n
      var resolve = function(result) {\n  return _.map(result, function(array) { return _.map(array, 'user'); });\n};\n\nvar users = [\n  { 'user': 'barney',  'age': 36, 'active': false },\n  { 'user': 'fred',    'age': 40, 'active': true },\n  { 'user': 'pebbles', 'age': 1,  'active': false }\n];\n\nresolve( _.partition(users, function(o) { return o.active; }) );\n// => [['fred'], ['barney', 'pebbles']]\n\n// 使用了 `_.matches` 的回调结果\nresolve( _.partition(users, { 'age': 1, 'active': false }) );\n// => [['pebbles'], ['barney', 'fred']]\n\n// 使用了 `_.matchesProperty` 的回调结果\nresolve( _.partition(users, ['active', false]) );\n// => [['barney', 'pebbles'], ['fred']]\n\n// 使用了 `_.property` 的回调结果\nresolve( _.partition(users, 'active') );\n// => [['fred'], ['barney', 'pebbles']]\n
      \n
      \n
      \n\n
      " } + "html":"

      partition source npm

      \n
      _.partition(collection, [predicate=_.identity])
      \n\n

      创建一个拆分为两部分的数组。\n第一部分是 predicate 检查为真值的,第二部分是 predicate 检查为假值的。\npredicate 会传入3个参数:(value, index|key, collection)。

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        需要遍历的集合

        \n
      2. \n
      3. [predicate=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回分组元素的数组

      \n
      \n

      示例

      \n
      var resolve = function(result) {\n  return _.map(result, function(array) { return _.map(array, 'user'); });\n};\n\nvar users = [\n  { 'user': 'barney',  'age': 36, 'active': false },\n  { 'user': 'fred',    'age': 40, 'active': true },\n  { 'user': 'pebbles', 'age': 1,  'active': false }\n];\n\nresolve( _.partition(users, function(o) { return o.active; }) );\n// => [['fred'], ['barney', 'pebbles']]\n\n// 使用了 `_.matches` 的回调结果\nresolve( _.partition(users, { 'age': 1, 'active': false }) );\n// => [['pebbles'], ['barney', 'fred']]\n\n// 使用了 `_.matchesProperty` 的回调结果\nresolve( _.partition(users, ['active', false]) );\n// => [['barney', 'pebbles'], ['fred']]\n\n// 使用了 `_.property` 的回调结果\nresolve( _.partition(users, 'active') );\n// => [['fred'], ['barney', 'pebbles']]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/reduce", - "html":"

      reduce source npm

      \n
      _.reduce(collection, [iteratee=_.identity], [accumulator])
      \n\n

      通过 iteratee 遍历集合中的每个元素。\n每次返回的值会作为下一次 iteratee 使用。\n如果没有提供 accumulator,则集合中的第一个元素作为 accumulator。\niteratee 会传入4个参数:(accumulator, value, index|key, collection)。\n
      \n
      \n有许多 lodash 的方法以 iteratees 的身份守护其工作,例如:\n_.reduce, _.reduceRight, 以及 _.transform.\n
      \n
      \n被守护的有:
      \nassign, defaults, defaultsDeep, includes, merge, orderBy,\n以及 sortBy

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        需要遍历的集合

        \n
      2. \n
      3. [iteratee=_.identity] (Function)

        这个函数会处理每一个元素

        \n
      4. \n
      5. [accumulator] (*)

        初始化的值

        \n
      6. \n
      \n

      返回值 (*)

      \n

      返回累加后的值

      \n
      \n

      示例

      \n
      _.reduce([1, 2], function(sum, n) {\n  return sum + n;\n});\n// => 3\n\n_.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n  (result[value] || (result[value] = [])).push(key);\n  return result;\n}, {});\n// => { '1': ['a', 'c'], '2': ['b'] } (无法保证遍历的顺序)\n
      \n
      \n
      \n\n
      " } + "html":"

      reduce source npm

      \n
      _.reduce(collection, [iteratee=_.identity], [accumulator])
      \n\n

      通过 iteratee 遍历集合中的每个元素。\n每次返回的值会作为下一次 iteratee 使用。\n如果没有提供 accumulator,则集合中的第一个元素作为 accumulator。\niteratee 会传入4个参数:(accumulator, value, index|key, collection)。\n
      \n
      \n有许多 lodash 的方法以 iteratees 的身份守护其工作,例如:\n_.reduce, _.reduceRight, 以及 _.transform.\n
      \n
      \n被守护的有:
      \nassign, defaults, defaultsDeep, includes, merge, orderBy,\n以及 sortBy

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        需要遍历的集合

        \n
      2. \n
      3. [iteratee=_.identity] (Function)

        这个函数会处理每一个元素

        \n
      4. \n
      5. [accumulator] (*)

        初始化的值

        \n
      6. \n
      \n

      返回值 (*)

      \n

      返回累加后的值

      \n
      \n

      示例

      \n
      _.reduce([1, 2], function(sum, n) {\n  return sum + n;\n});\n// => 3\n\n_.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n  (result[value] || (result[value] = [])).push(key);\n  return result;\n}, {});\n// => { '1': ['a', 'c'], '2': ['b'] } (无法保证遍历的顺序)\n
      \n
      \n
      \n\n
      " } ,{ "href":"/reduceRight", - "html":"

      reduceRight source npm

      \n
      _.reduceRight(collection, [iteratee=_.identity], [accumulator])
      \n\n

      这个方法类似 _.reduce ,除了它是从右到左遍历的。

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        需要遍历的集合

        \n
      2. \n
      3. [iteratee=_.identity] (Function)

        这个函数会处理每一个元素

        \n
      4. \n
      5. [accumulator] (*)

        初始化的值

        \n
      6. \n
      \n

      返回值 (*)

      \n

      返回累加后的值

      \n
      \n

      示例

      \n
      var array = [[0, 1], [2, 3], [4, 5]];\n\n_.reduceRight(array, function(flattened, other) {\n  return flattened.concat(other);\n}, []);\n// => [4, 5, 2, 3, 0, 1]\n
      \n
      \n
      \n\n
      " } + "html":"

      reduceRight source npm

      \n
      _.reduceRight(collection, [iteratee=_.identity], [accumulator])
      \n\n

      这个方法类似 _.reduce ,除了它是从右到左遍历的。

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        需要遍历的集合

        \n
      2. \n
      3. [iteratee=_.identity] (Function)

        这个函数会处理每一个元素

        \n
      4. \n
      5. [accumulator] (*)

        初始化的值

        \n
      6. \n
      \n

      返回值 (*)

      \n

      返回累加后的值

      \n
      \n

      示例

      \n
      var array = [[0, 1], [2, 3], [4, 5]];\n\n_.reduceRight(array, function(flattened, other) {\n  return flattened.concat(other);\n}, []);\n// => [4, 5, 2, 3, 0, 1]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/reject", - "html":"

      reject source npm

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

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

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        需要遍历的集合

        \n
      2. \n
      3. [predicate=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回过滤后的新数组

      \n
      \n

      示例

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

      reject source npm

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

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

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        需要遍历的集合

        \n
      2. \n
      3. [predicate=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回过滤后的新数组

      \n
      \n

      示例

      \n
      var users = [\n  { 'user': 'barney', 'age': 36, 'active': false },\n  { 'user': 'fred',   'age': 40, 'active': true }\n];\n\n_.reject(users, function(o) { return !o.active; });\n// => objects for ['fred']\n\n// 使用了 `_.matches` iteratee 的结果\n_.reject(users, { 'age': 40, 'active': true });\n// => objects for ['barney']\n\n// 使用了 `_.matchesProperty` iteratee 的结果\n_.reject(users, ['active', false]);\n// => objects for ['fred']\n\n// 使用了 `_.property` iteratee 的结果\n_.reject(users, 'active');\n// => objects for ['barney']\n
      \n
      \n
      \n\n
      " } ,{ "href":"/sample", - "html":"

      sample source npm

      \n
      _.sample(collection)
      \n\n

      从集合中随机获得元素

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        要取样的集合

        \n
      2. \n
      \n

      返回值 (*)

      \n

      返回随机元素

      \n
      \n

      示例

      \n
      _.sample([1, 2, 3, 4]);\n// => 2\n
      \n
      \n
      \n\n
      " } + "html":"

      sample source npm

      \n
      _.sample(collection)
      \n\n

      从集合中随机获得元素

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        要取样的集合

        \n
      2. \n
      \n

      返回值 (*)

      \n

      返回随机元素

      \n
      \n

      示例

      \n
      _.sample([1, 2, 3, 4]);\n// => 2\n
      \n
      \n
      \n\n
      " } ,{ "href":"/sampleSize", - "html":"

      sampleSize source npm

      \n
      _.sampleSize(collection, [n=0])
      \n\n

      获得从集合中随机获得 N 个元素\nGets n random elements from collection.

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        要取样的集合

        \n
      2. \n
      3. [n=0] (number)

        要取得的元素个数

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回随机元素

      \n
      \n

      示例

      \n
      _.sampleSize([1, 2, 3, 4], 2);\n// => [3, 1]\n
      \n
      \n
      \n\n
      " } + "html":"

      sampleSize source npm

      \n
      _.sampleSize(collection, [n=0])
      \n\n

      获得从集合中随机获得 N 个元素\nGets n random elements from collection.

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        要取样的集合

        \n
      2. \n
      3. [n=0] (number)

        要取得的元素个数

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回随机元素

      \n
      \n

      示例

      \n
      _.sampleSize([1, 2, 3], 2);\n// => [3, 1]\n\n_.sampleSize([1, 2, 3], 4);\n// => [2, 3, 1]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/shuffle", - "html":"

      shuffle source npm

      \n
      _.shuffle(collection)
      \n\n

      创建一个被打乱元素的集合。\n使用了 Fisher-Yates shuffle 版本。

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        要打乱的集合

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回一个被打乱元素的新集合

      \n
      \n

      示例

      \n
      _.shuffle([1, 2, 3, 4]);\n// => [4, 1, 3, 2]\n
      \n
      \n
      \n\n
      " } + "html":"

      shuffle source npm

      \n
      _.shuffle(collection)
      \n\n

      创建一个被打乱元素的集合。\n使用了 Fisher-Yates shuffle 版本。

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        要打乱的集合

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回一个被打乱元素的新集合

      \n
      \n

      示例

      \n
      _.shuffle([1, 2, 3, 4]);\n// => [4, 1, 3, 2]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/size", - "html":"

      size source npm

      \n
      _.size(collection)
      \n\n

      返回集合的长度或对象中可枚举属性的个数。

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        待处理的集合

        \n
      2. \n
      \n

      返回值 (number)

      \n

      返回集合的大小

      \n
      \n

      示例

      \n
      _.size([1, 2, 3]);\n// => 3\n\n_.size({ 'a': 1, 'b': 2 });\n// => 2\n\n_.size('pebbles');\n// => 7\n
      \n
      \n
      \n\n
      " } + "html":"

      size source npm

      \n
      _.size(collection)
      \n\n

      返回集合的长度或对象中可枚举属性的个数。

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        待处理的集合

        \n
      2. \n
      \n

      返回值 (number)

      \n

      返回集合的大小

      \n
      \n

      示例

      \n
      _.size([1, 2, 3]);\n// => 3\n\n_.size({ 'a': 1, 'b': 2 });\n// => 2\n\n_.size('pebbles');\n// => 7\n
      \n
      \n
      \n\n
      " } ,{ "href":"/some", - "html":"

      some source npm

      \n
      _.some(collection, [predicate=_.identity])
      \n\n

      通过 predicate 检查集合中的元素是否存在任意真值的元素,只要 predicate 返回一次真值,遍历就停止,并返回 true。\npredicate 会传入3个参数:(value, index|key, collection)。

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        需要遍历的集合

        \n
      2. \n
      3. [predicate=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (boolean)

      \n

      返回 true,如果任意元素经 predicate 检查都为真值,否则返回 false。

      \n
      \n

      示例

      \n
      _.some([null, 0, 'yes', false], Boolean);\n// => true\n\nvar users = [\n  { 'user': 'barney', 'active': true },\n  { 'user': 'fred',   'active': false }\n];\n\n// 使用了 `_.matches` 的回调结果\n_.some(users, { 'user': 'barney', 'active': false });\n// => false\n\n// 使用了 `_.matchesProperty` 的回调结果\n_.some(users, ['active', false]);\n// => true\n\n// 使用了 `_.property` 的回调结果\n_.some(users, 'active');\n// => true\n
      \n
      \n
      \n\n
      " } + "html":"

      some source npm

      \n
      _.some(collection, [predicate=_.identity])
      \n\n

      通过 predicate 检查集合中的元素是否存在任意真值的元素,只要 predicate 返回一次真值,遍历就停止,并返回 true。\npredicate 会传入3个参数:(value, index|key, collection)。

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        需要遍历的集合

        \n
      2. \n
      3. [predicate=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (boolean)

      \n

      返回 true,如果任意元素经 predicate 检查都为真值,否则返回 false。

      \n
      \n

      示例

      \n
      _.some([null, 0, 'yes', false], Boolean);\n// => true\n\nvar users = [\n  { 'user': 'barney', 'active': true },\n  { 'user': 'fred',   'active': false }\n];\n\n// 使用了 `_.matches` 的回调结果\n_.some(users, { 'user': 'barney', 'active': false });\n// => false\n\n// 使用了 `_.matchesProperty` 的回调结果\n_.some(users, ['active', false]);\n// => true\n\n// 使用了 `_.property` 的回调结果\n_.some(users, 'active');\n// => true\n
      \n
      \n
      \n\n
      " } ,{ "href":"/sortBy", - "html":"

      sortBy source npm

      \n
      _.sortBy(collection, [iteratees=[_.identity]])
      \n\n

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

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        需要遍历的集合

        \n
      2. \n
      3. [iteratees=[_.identity]] (...(Function|Function[]|Object|Object[]|string|string[])

        这个函数决定排序

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回排序后的数组

      \n
      \n

      示例

      \n
      var resolve = _.partial(_.map, _, _.values);\n\nvar users = [\n  { 'user': 'fred',   'age': 48 },\n  { 'user': 'barney', 'age': 36 },\n  { 'user': 'fred',   'age': 42 },\n  { 'user': 'barney', 'age': 34 }\n];\n\nresolve( _.sortBy(users, function(o) { return o.user; }) );\n// => // => [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 42]]\n\nresolve( _.sortBy(users, ['user', 'age']) );\n// => [['barney', 34], ['barney', 36], ['fred', 42], ['fred', 48]]\n\nresolve( _.sortBy(users, 'user', function(o) {\n  return Math.floor(o.age / 10);\n}) );\n// => [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 42]]\n
      \n
      \n
      \n\n
      " } + "html":"

      sortBy source npm

      \n
      _.sortBy(collection, [iteratees=[_.identity]])
      \n\n

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

      \n
      \n\n

      参数

      \n
        \n
      1. collection (Array|Object)

        需要遍历的集合

        \n
      2. \n
      3. [iteratees=[_.identity]] (...(Function|Function[]|Object|Object[]|string|string[])

        这个函数决定排序

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回排序后的数组

      \n
      \n

      示例

      \n
      var users = [\n  { 'user': 'fred',   'age': 48 },\n  { 'user': 'barney', 'age': 36 },\n  { 'user': 'fred',   'age': 42 },\n  { 'user': 'barney', 'age': 34 }\n];\n\n\n_.sortBy(users, function(o) { return o.user; });\n// => 排序结果 [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 42]]\n\n_.sortBy(users, ['user', 'age']);\n// => 排序结果 [['barney', 34], ['barney', 36], ['fred', 42], ['fred', 48]]\n\n_.sortBy(users, 'user', function(o) {\n  return Math.floor(o.age / 10);\n});\n// => 排序结果 [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 42]]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/now", - "html":"

      now source npm

      \n
      _.now()
      \n\n

      获得 Unix 纪元(1970 1月1日 00:00:00 UTC) 直到现在的毫秒数。

      \n
      \n\n

      返回值 (number)

      \n

      返回时间戳

      \n
      \n

      示例

      \n
      _.defer(function(stamp) {\n  console.log(_.now() - stamp);\n}, _.now());\n// => 记录延迟函数调用的毫秒数\n
      \n
      \n
      \n\n
      " } + "html":"

      now source npm

      \n
      _.now()
      \n\n

      获得 Unix 纪元(1970 1月1日 00:00:00 UTC) 直到现在的毫秒数。

      \n
      \n\n

      返回值 (number)

      \n

      返回时间戳

      \n
      \n

      示例

      \n
      _.defer(function(stamp) {\n  console.log(_.now() - stamp);\n}, _.now());\n// => 记录延迟函数调用的毫秒数\n
      \n
      \n
      \n\n
      " } ,{ "href":"/after", - "html":"

      after source npm

      \n
      _.after(n, func)
      \n\n

      反向版 _.before。\n这个方法创建一个新函数,当调用 N 次或者多次之后将触发 func 方法。

      \n
      \n\n

      参数

      \n
        \n
      1. n (number)

        func 方法应该在调用多少次后才执行

        \n
      2. \n
      3. func (Function)

        指定的触发方法

        \n
      4. \n
      \n

      返回值 (Function)

      \n

      返回限定的函数

      \n
      \n

      示例

      \n
      var saves = ['profile', 'settings'];\n\nvar done = _.after(saves.length, function() {\n  console.log('done saving!');\n});\n\n_.forEach(saves, function(type) {\n  asyncSave({ 'type': type, 'complete': done });\n});\n// => 2次 `asyncSave`之后,输出 'done saving!'。\n
      \n
      \n
      \n\n
      " } + "html":"

      after source npm

      \n
      _.after(n, func)
      \n\n

      反向版 _.before。\n这个方法创建一个新函数,当调用 N 次或者多次之后将触发 func 方法。

      \n
      \n\n

      参数

      \n
        \n
      1. n (number)

        func 方法应该在调用多少次后才执行

        \n
      2. \n
      3. func (Function)

        指定的触发方法

        \n
      4. \n
      \n

      返回值 (Function)

      \n

      返回限定的函数

      \n
      \n

      示例

      \n
      var saves = ['profile', 'settings'];\n\nvar done = _.after(saves.length, function() {\n  console.log('done saving!');\n});\n\n_.forEach(saves, function(type) {\n  asyncSave({ 'type': type, 'complete': done });\n});\n// => 2次 `asyncSave`之后,输出 'done saving!'。\n
      \n
      \n
      \n\n
      " } ,{ "href":"/ary", - "html":"

      ary source npm

      \n
      _.ary(func, [n=func.length])
      \n\n

      创建一个最多接受 N 个参数,忽略多余参数的方法。

      \n
      \n\n

      参数

      \n
        \n
      1. func (Function)

        需要被限制参数个数的函数

        \n
      2. \n
      3. [n=func.length] (number)

        限制的参数数量

        \n
      4. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      _.map(['6', '8', '10'], _.ary(parseInt, 1));\n// => [6, 8, 10]\n
      \n
      \n
      \n\n
      " } + "html":"

      ary source npm

      \n
      _.ary(func, [n=func.length])
      \n\n

      创建一个最多接受 N 个参数,忽略多余参数的方法。

      \n
      \n\n

      参数

      \n
        \n
      1. func (Function)

        需要被限制参数个数的函数

        \n
      2. \n
      3. [n=func.length] (number)

        限制的参数数量

        \n
      4. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      _.map(['6', '8', '10'], _.ary(parseInt, 1));\n// => [6, 8, 10]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/before", - "html":"

      before source npm

      \n
      _.before(n, func)
      \n\n

      创建一个调用 func 的函数。\n调用次数不超过 N 次。\n之后再调用这个函数,将返回最后一个调用的结果。

      \n
      \n\n

      参数

      \n
        \n
      1. n (number)

        超过多少次不再调用 func

        \n
      2. \n
      3. func (Function)

        指定的触发的函数

        \n
      4. \n
      \n

      返回值 (Function)

      \n

      返回限定的函数

      \n
      \n

      示例

      \n
      jQuery(element).on('click', _.before(5, addContactToList));\n// => 最多允许添加4个联系人到列表里\n
      \n
      \n
      \n\n
      " } + "html":"

      before source npm

      \n
      _.before(n, func)
      \n\n

      创建一个调用 func 的函数。\n调用次数不超过 N 次。\n之后再调用这个函数,将返回最后一个调用的结果。

      \n
      \n\n

      参数

      \n
        \n
      1. n (number)

        超过多少次不再调用 func

        \n
      2. \n
      3. func (Function)

        指定的触发的函数

        \n
      4. \n
      \n

      返回值 (Function)

      \n

      返回限定的函数

      \n
      \n

      示例

      \n
      jQuery(element).on('click', _.before(5, addContactToList));\n// => 最多允许添加4个联系人到列表里\n
      \n
      \n
      \n\n
      " } ,{ "href":"/bind", - "html":"

      bind source npm

      \n
      _.bind(func, thisArg, [partials])
      \n\n

      创建一个函数 func,这个函数的 this 会被绑定在 thisArg。\n并且任何附加在 _.bind 的参数会被传入到这个绑定函数上。\n这个 _.bind.placeholder 的值,默认是以 _ 作为附加部分参数的占位符。\n
      \n
      \n注意: 不同于原生的 Function#bind,这个方法不会设置绑定函数的 length 属性。

      \n
      \n\n

      参数

      \n
        \n
      1. func (Function)

        要绑定的函数

        \n
      2. \n
      3. thisArg (*)

        这个 this 会被绑定给 func

        \n
      4. \n
      5. [partials] (...*)

        附加的部分参数

        \n
      6. \n
      \n

      返回值 (Function)

      \n

      返回新的绑定函数

      \n
      \n

      示例

      \n
      var greet = function(greeting, punctuation) {\n  return greeting + ' ' + this.user + punctuation;\n};\n\nvar object = { 'user': 'fred' };\n\nvar bound = _.bind(greet, object, 'hi');\nbound('!');\n// => 'hi fred!'\n\n// 使用了占位符\nvar bound = _.bind(greet, object, _, '!');\nbound('hi');\n// => 'hi fred!'\n
      \n
      \n
      \n\n
      " } + "html":"

      bind source npm

      \n
      _.bind(func, thisArg, [partials])
      \n\n

      创建一个函数 func,这个函数的 this 会被绑定在 thisArg。\n并且任何附加在 _.bind 的参数会被传入到这个绑定函数上。\n这个 _.bind.placeholder 的值,默认是以 _ 作为附加部分参数的占位符。\n
      \n
      \n注意: 不同于原生的 Function#bind,这个方法不会设置绑定函数的 length 属性。

      \n
      \n\n

      参数

      \n
        \n
      1. func (Function)

        要绑定的函数

        \n
      2. \n
      3. thisArg (*)

        这个 this 会被绑定给 func

        \n
      4. \n
      5. [partials] (...*)

        附加的部分参数

        \n
      6. \n
      \n

      返回值 (Function)

      \n

      返回新的绑定函数

      \n
      \n

      示例

      \n
      var greet = function(greeting, punctuation) {\n  return greeting + ' ' + this.user + punctuation;\n};\n\nvar object = { 'user': 'fred' };\n\nvar bound = _.bind(greet, object, 'hi');\nbound('!');\n// => 'hi fred!'\n\n// 使用了占位符\nvar bound = _.bind(greet, object, _, '!');\nbound('hi');\n// => 'hi fred!'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/bindKey", - "html":"

      bindKey source npm

      \n
      _.bindKey(object, key, [partials])
      \n\n

      创建一个函数。\n该方法绑定 object[key] 的方法。\n任何附加在 _.bindKey 的参数会预设到该绑定函数上。\n
      \n
      \n这个方法与 _.bind 的不同之处在于允许重写绑定函数即使它还不存在。\n浏览 Peter Michaux's article\n了解更多详情。\n
      \n
      \n这个 _.bindKey.placeholder 的值,默认是以 _ 作为附加部分参数的占位符。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        需要绑定函数的对象

        \n
      2. \n
      3. key (string)

        需要绑定函数对象的键

        \n
      4. \n
      5. [partials] (...*)

        附加的部分参数

        \n
      6. \n
      \n

      返回值 (Function)

      \n

      返回新的绑定函数

      \n
      \n

      示例

      \n
      var object = {\n  'user': 'fred',\n  'greet': function(greeting, punctuation) {\n    return greeting + ' ' + this.user + punctuation;\n  }\n};\n\nvar bound = _.bindKey(object, 'greet', 'hi');\nbound('!');\n// => 'hi fred!'\n\nobject.greet = function(greeting, punctuation) {\n  return greeting + 'ya ' + this.user + punctuation;\n};\n\nbound('!');\n// => 'hiya fred!'\n\n// 使用了占位符\nvar bound = _.bindKey(object, 'greet', _, '!');\nbound('hi');\n// => 'hiya fred!'\n
      \n
      \n
      \n\n
      " } + "html":"

      bindKey source npm

      \n
      _.bindKey(object, key, [partials])
      \n\n

      创建一个函数。\n该方法绑定 object[key] 的方法。\n任何附加在 _.bindKey 的参数会预设到该绑定函数上。\n
      \n
      \n这个方法与 _.bind 的不同之处在于允许重写绑定函数即使它还不存在。\n浏览 Peter Michaux's article\n了解更多详情。\n
      \n
      \n这个 _.bindKey.placeholder 的值,默认是以 _ 作为附加部分参数的占位符。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        需要绑定函数的对象

        \n
      2. \n
      3. key (string)

        需要绑定函数对象的键

        \n
      4. \n
      5. [partials] (...*)

        附加的部分参数

        \n
      6. \n
      \n

      返回值 (Function)

      \n

      返回新的绑定函数

      \n
      \n

      示例

      \n
      var object = {\n  'user': 'fred',\n  'greet': function(greeting, punctuation) {\n    return greeting + ' ' + this.user + punctuation;\n  }\n};\n\nvar bound = _.bindKey(object, 'greet', 'hi');\nbound('!');\n// => 'hi fred!'\n\nobject.greet = function(greeting, punctuation) {\n  return greeting + 'ya ' + this.user + punctuation;\n};\n\nbound('!');\n// => 'hiya fred!'\n\n// 使用了占位符\nvar bound = _.bindKey(object, 'greet', _, '!');\nbound('hi');\n// => 'hiya fred!'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/curry", - "html":"

      curry source npm

      \n
      _.curry(func, [arity=func.length])
      \n\n

      创建一个函数,该函数接收一个或多个 func 的参数。\n当该函数被调用时,如果 func 所需要传递的所有参数都被提供,则直接返回 func 所执行的结果。\n否则继续返回该函数并等待接收剩余的参数。\n可以使用 func.length 强制需要累积的参数个数。\n
      \n
      \n这个 _.curry.placeholder 的值,默认是以 _ 作为附加部分参数的占位符。\n
      \n
      \n注意: 这个方法不会设置 "length" 到 curried 函数上。

      \n
      \n\n

      参数

      \n
        \n
      1. func (Function)

        需要 curry 的函数

        \n
      2. \n
      3. [arity=func.length] (number)

        需要提供给 func 的参数数量

        \n
      4. \n
      \n

      返回值 (Function)

      \n

      返回 curry 后的函数

      \n
      \n

      示例

      \n
      var abc = function(a, b, c) {\n  return [a, b, c];\n};\n\nvar curried = _.curry(abc);\n\ncurried(1)(2)(3);\n// => [1, 2, 3]\n\ncurried(1, 2)(3);\n// => [1, 2, 3]\n\ncurried(1, 2, 3);\n// => [1, 2, 3]\n\n// 使用了占位符\ncurried(1)(_, 3)(2);\n// => [1, 2, 3]\n
      \n
      \n
      \n\n
      " } + "html":"

      curry source npm

      \n
      _.curry(func, [arity=func.length])
      \n\n

      创建一个函数,该函数接收一个或多个 func 的参数。\n当该函数被调用时,如果 func 所需要传递的所有参数都被提供,则直接返回 func 所执行的结果。\n否则继续返回该函数并等待接收剩余的参数。\n可以使用 func.length 强制需要累积的参数个数。\n
      \n
      \n这个 _.curry.placeholder 的值,默认是以 _ 作为附加部分参数的占位符。\n
      \n
      \n注意: 这个方法不会设置 "length" 到 curried 函数上。

      \n
      \n\n

      参数

      \n
        \n
      1. func (Function)

        需要 curry 的函数

        \n
      2. \n
      3. [arity=func.length] (number)

        需要提供给 func 的参数数量

        \n
      4. \n
      \n

      返回值 (Function)

      \n

      返回 curry 后的函数

      \n
      \n

      示例

      \n
      var abc = function(a, b, c) {\n  return [a, b, c];\n};\n\nvar curried = _.curry(abc);\n\ncurried(1)(2)(3);\n// => [1, 2, 3]\n\ncurried(1, 2)(3);\n// => [1, 2, 3]\n\ncurried(1, 2, 3);\n// => [1, 2, 3]\n\n// 使用了占位符\ncurried(1)(_, 3)(2);\n// => [1, 2, 3]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/curryRight", - "html":"

      curryRight source npm

      \n
      _.curryRight(func, [arity=func.length])
      \n\n

      这个方法类似 _.curry。\n除了它接受参数的方式用 _.partialRight 代替了 _.partial。\n
      \n
      \n这个 _.curry.placeholder 的值,默认是以 _ 作为附加部分参数的占位符。\n
      \n
      \n注意: 这个方法不会设置 "length" 到 curried 函数上。

      \n
      \n\n

      参数

      \n
        \n
      1. func (Function)

        需要 curry 的函数

        \n
      2. \n
      3. [arity=func.length] (number)

        需要提供给 func 的参数数量

        \n
      4. \n
      \n

      返回值 (Function)

      \n

      返回 curry 后的函数

      \n
      \n

      示例

      \n
      var abc = function(a, b, c) {\n  return [a, b, c];\n};\n\nvar curried = _.curryRight(abc);\n\ncurried(3)(2)(1);\n// => [1, 2, 3]\n\ncurried(2, 3)(1);\n// => [1, 2, 3]\n\ncurried(1, 2, 3);\n// => [1, 2, 3]\n\n// 使用了占位符\ncurried(3)(1, _)(2);\n// => [1, 2, 3]\n
      \n
      \n
      \n\n
      " } + "html":"

      curryRight source npm

      \n
      _.curryRight(func, [arity=func.length])
      \n\n

      这个方法类似 _.curry。\n除了它接受参数的方式用 _.partialRight 代替了 _.partial。\n
      \n
      \n这个 _.curry.placeholder 的值,默认是以 _ 作为附加部分参数的占位符。\n
      \n
      \n注意: 这个方法不会设置 "length" 到 curried 函数上。

      \n
      \n\n

      参数

      \n
        \n
      1. func (Function)

        需要 curry 的函数

        \n
      2. \n
      3. [arity=func.length] (number)

        需要提供给 func 的参数数量

        \n
      4. \n
      \n

      返回值 (Function)

      \n

      返回 curry 后的函数

      \n
      \n

      示例

      \n
      var abc = function(a, b, c) {\n  return [a, b, c];\n};\n\nvar curried = _.curryRight(abc);\n\ncurried(3)(2)(1);\n// => [1, 2, 3]\n\ncurried(2, 3)(1);\n// => [1, 2, 3]\n\ncurried(1, 2, 3);\n// => [1, 2, 3]\n\n// 使用了占位符\ncurried(3)(1, _)(2);\n// => [1, 2, 3]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/debounce", - "html":"

      debounce source npm

      \n
      _.debounce(func, [wait=0], [options])
      \n\n

      创建一个防抖动函数。\n该函数会在 wait 毫秒后调用 func 方法。\n该函数提供一个 cancel 方法取消延迟的函数调用以及 flush 方法立即调用。\n可以提供一个 options 对象决定如何调用 func 方法,\noptions.leading 与|或 options.trailing 决定延迟前后如何触发。\nfunc 会传入最后一次传入的参数给防抖动函数。\n随后调用的防抖动函数返回是最后一次 func 调用的结果。\n
      \n
      \n注意: 如果 leadingtrailing 都设定为 true。\n则 func 允许 trailing 方式调用的条件为: 在 wait 期间多次调用防抖方法。\n
      \n
      \n查看 David Corbacho's article\n了解 _.debounce_.throttle 的区别。

      \n
      \n\n

      参数

      \n
        \n
      1. func (Function)

        要防抖动的函数

        \n
      2. \n
      3. [wait=0] (number)

        需要延迟的毫秒数

        \n
      4. \n
      5. [options] (Object)

        选项对象

        \n
      6. \n
      7. [options.leading=false] (boolean)

        指定调用在延迟开始前

        \n
      8. \n
      9. [options.maxWait] (number)

        设置 func 允许被延迟的最大值

        \n
      10. \n
      11. [options.trailing=true] (boolean)

        指定调用在延迟结束后

        \n
      12. \n
      \n

      返回值 (Function)

      \n

      返回具有防抖动功能的函数

      \n
      \n

      示例

      \n
      // 避免窗口在变动时出现昂贵的计算开销。\njQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\n// 当点击时 `sendMail` 随后就被调用。\njQuery(element).on('click', _.debounce(sendMail, 300, {\n  'leading': true,\n  'trailing': false\n}));\n\n// 确保 `batchLog` 调用1次之后,1秒内会被触发。\nvar debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\nvar source = new EventSource('/stream');\njQuery(source).on('message', debounced);\n\n// 取消一个 trailing 的防抖动调用\njQuery(window).on('popstate', debounced.cancel);\n
      \n
      \n
      \n\n
      " } + "html":"

      debounce source npm

      \n
      _.debounce(func, [wait=0], [options])
      \n\n

      创建一个防抖动函数。\n该函数会在 wait 毫秒后调用 func 方法。\n该函数提供一个 cancel 方法取消延迟的函数调用以及 flush 方法立即调用。\n可以提供一个 options 对象决定如何调用 func 方法,\noptions.leading 与|或 options.trailing 决定延迟前后如何触发。\nfunc 会传入最后一次传入的参数给防抖动函数。\n随后调用的防抖动函数返回是最后一次 func 调用的结果。\n
      \n
      \n注意: 如果 leadingtrailing 都设定为 true。\n则 func 允许 trailing 方式调用的条件为: 在 wait 期间多次调用防抖方法。\n
      \n
      \n查看 David Corbacho's article\n了解 _.debounce_.throttle 的区别。

      \n
      \n\n

      参数

      \n
        \n
      1. func (Function)

        要防抖动的函数

        \n
      2. \n
      3. [wait=0] (number)

        需要延迟的毫秒数

        \n
      4. \n
      5. [options] (Object)

        选项对象

        \n
      6. \n
      7. [options.leading=false] (boolean)

        指定调用在延迟开始前

        \n
      8. \n
      9. [options.maxWait] (number)

        设置 func 允许被延迟的最大值

        \n
      10. \n
      11. [options.trailing=true] (boolean)

        指定调用在延迟结束后

        \n
      12. \n
      \n

      返回值 (Function)

      \n

      返回具有防抖动功能的函数

      \n
      \n

      示例

      \n
      // 避免窗口在变动时出现昂贵的计算开销。\njQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\n// 当点击时 `sendMail` 随后就被调用。\njQuery(element).on('click', _.debounce(sendMail, 300, {\n  'leading': true,\n  'trailing': false\n}));\n\n// 确保 `batchLog` 调用1次之后,1秒内会被触发。\nvar debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\nvar source = new EventSource('/stream');\njQuery(source).on('message', debounced);\n\n// 取消一个 trailing 的防抖动调用\njQuery(window).on('popstate', debounced.cancel);\n
      \n
      \n
      \n\n
      " } ,{ "href":"/defer", - "html":"

      defer source npm

      \n
      _.defer(func, [args])
      \n\n

      延迟调用 func 直到当前堆栈清理完毕。\n任何附加的参数会传入到 func

      \n
      \n\n

      参数

      \n
        \n
      1. func (Function)

        要延迟的函数

        \n
      2. \n
      3. [args] (...*)

        会在调用时传入到 func 的参数

        \n
      4. \n
      \n

      返回值 (number)

      \n

      返回计时器 id

      \n
      \n

      示例

      \n
      _.defer(function(text) {\n  console.log(text);\n}, 'deferred');\n// 一毫秒或更久一些输出 'deferred'。\n
      \n
      \n
      \n\n
      " } + "html":"

      defer source npm

      \n
      _.defer(func, [args])
      \n\n

      延迟调用 func 直到当前堆栈清理完毕。\n任何附加的参数会传入到 func

      \n
      \n\n

      参数

      \n
        \n
      1. func (Function)

        要延迟的函数

        \n
      2. \n
      3. [args] (...*)

        会在调用时传入到 func 的参数

        \n
      4. \n
      \n

      返回值 (number)

      \n

      返回计时器 id

      \n
      \n

      示例

      \n
      _.defer(function(text) {\n  console.log(text);\n}, 'deferred');\n// 一毫秒或更久一些输出 'deferred'。\n
      \n
      \n
      \n\n
      " } ,{ "href":"/delay", - "html":"

      delay source npm

      \n
      _.delay(func, wait, [args])
      \n\n

      延迟 wait 毫秒后调用 func。\n任何附加的参数会传入到 func

      \n
      \n\n

      参数

      \n
        \n
      1. func (Function)

        要延迟的函数

        \n
      2. \n
      3. wait (number)

        要延迟的毫秒数

        \n
      4. \n
      5. [args] (...*)

        会在调用时传入到 func 的参数

        \n
      6. \n
      \n

      返回值 (number)

      \n

      返回计时器 id

      \n
      \n

      示例

      \n
      _.delay(function(text) {\n  console.log(text);\n}, 1000, 'later');\n// => 一秒后输出 'later'。\n
      \n
      \n
      \n\n
      " } + "html":"

      delay source npm

      \n
      _.delay(func, wait, [args])
      \n\n

      延迟 wait 毫秒后调用 func。\n任何附加的参数会传入到 func

      \n
      \n\n

      参数

      \n
        \n
      1. func (Function)

        要延迟的函数

        \n
      2. \n
      3. wait (number)

        要延迟的毫秒数

        \n
      4. \n
      5. [args] (...*)

        会在调用时传入到 func 的参数

        \n
      6. \n
      \n

      返回值 (number)

      \n

      返回计时器 id

      \n
      \n

      示例

      \n
      _.delay(function(text) {\n  console.log(text);\n}, 1000, 'later');\n// => 一秒后输出 'later'。\n
      \n
      \n
      \n\n
      " } ,{ "href":"/flip", - "html":"

      flip source npm

      \n
      _.flip(func)
      \n\n

      创建一个翻转接收参数的 func 函数。

      \n
      \n\n

      参数

      \n
        \n
      1. func (Function)

        要翻转参数的函数

        \n
      2. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      var flipped = _.flip(function() {\n  return _.toArray(arguments);\n});\n\nflipped('a', 'b', 'c', 'd');\n// => ['d', 'c', 'b', 'a']\n
      \n
      \n
      \n\n
      " } + "html":"

      flip source npm

      \n
      _.flip(func)
      \n\n

      创建一个翻转接收参数的 func 函数。

      \n
      \n\n

      参数

      \n
        \n
      1. func (Function)

        要翻转参数的函数

        \n
      2. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      var flipped = _.flip(function() {\n  return _.toArray(arguments);\n});\n\nflipped('a', 'b', 'c', 'd');\n// => ['d', 'c', 'b', 'a']\n
      \n
      \n
      \n\n
      " } ,{ "href":"/memoize", - "html":"

      memoize source npm

      \n
      _.memoize(func, [resolver])
      \n\n

      创建一个会缓存 func 结果的函数。\n如果提供了 resolver,就用 resolver 的返回值作为 key 缓存函数的结果。\n默认情况下用第一个参数作为缓存的 key。\nfunc 在调用时 this 会绑定在缓存函数上。\n
      \n
      \n注意: \n缓存会暴露在缓存函数的 cache 上。\n它是可以定制的,只要替换了 _.memoize.Cache 构造函数,或实现了 Map 的\ndeletegethas, 以及 set方法。

      \n
      \n\n

      参数

      \n
        \n
      1. func (Function)

        需要缓存化的函数

        \n
      2. \n
      3. [resolver] (Function)

        这个函数的返回值作为缓存的 key

        \n
      4. \n
      \n

      返回值 (Function)

      \n

      返回缓存化后的函数

      \n
      \n

      示例

      \n
      var object = { 'a': 1, 'b': 2 };\nvar other = { 'c': 3, 'd': 4 };\n\nvar values = _.memoize(_.values);\nvalues(object);\n// => [1, 2]\n\nvalues(other);\n// => [3, 4]\n\nobject.a = 2;\nvalues(object);\n// => [1, 2]\n\n// 修改结果缓存\nvalues.cache.set(object, ['a', 'b']);\nvalues(object);\n// => ['a', 'b']\n\n// 替换 `_.memoize.Cache`\n_.memoize.Cache = WeakMap;\n
      \n
      \n
      \n\n
      " } + "html":"

      memoize source npm

      \n
      _.memoize(func, [resolver])
      \n\n

      创建一个会缓存 func 结果的函数。\n如果提供了 resolver,就用 resolver 的返回值作为 key 缓存函数的结果。\n默认情况下用第一个参数作为缓存的 key。\nfunc 在调用时 this 会绑定在缓存函数上。\n
      \n
      \n注意:\n缓存会暴露在缓存函数的 cache 上。\n它是可以定制的,只要替换了 _.memoize.Cache 构造函数,或实现了 Map 的\ndeletegethas, 以及 set方法。

      \n
      \n\n

      参数

      \n
        \n
      1. func (Function)

        需要缓存化的函数

        \n
      2. \n
      3. [resolver] (Function)

        这个函数的返回值作为缓存的 key

        \n
      4. \n
      \n

      返回值 (Function)

      \n

      返回缓存化后的函数

      \n
      \n

      示例

      \n
      var object = { 'a': 1, 'b': 2 };\nvar other = { 'c': 3, 'd': 4 };\n\nvar values = _.memoize(_.values);\nvalues(object);\n// => [1, 2]\n\nvalues(other);\n// => [3, 4]\n\nobject.a = 2;\nvalues(object);\n// => [1, 2]\n\n// 修改结果缓存\nvalues.cache.set(object, ['a', 'b']);\nvalues(object);\n// => ['a', 'b']\n\n// 替换 `_.memoize.Cache`\n_.memoize.Cache = WeakMap;\n
      \n
      \n
      \n\n
      " } ,{ "href":"/negate", - "html":"

      negate source npm

      \n
      _.negate(predicate)
      \n\n

      创建一个对 func 结果 取反的函数。\n用 predicate 对 func 检查的时候,this 绑定到创建的函数,并传入对应参数。

      \n
      \n\n

      参数

      \n
        \n
      1. predicate (Function)

        需要对结果取反的函数

        \n
      2. \n
      \n

      返回值 (Function)

      \n

      返回一个新函数

      \n
      \n

      示例

      \n
      function isEven(n) {\n  return n % 2 == 0;\n}\n\n_.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n// => [1, 3, 5]\n
      \n
      \n
      \n\n
      " } + "html":"

      negate source npm

      \n
      _.negate(predicate)
      \n\n

      创建一个对 func 结果 取反的函数。\n用 predicate 对 func 检查的时候,this 绑定到创建的函数,并传入对应参数。

      \n
      \n\n

      参数

      \n
        \n
      1. predicate (Function)

        需要对结果取反的函数

        \n
      2. \n
      \n

      返回值 (Function)

      \n

      返回一个新函数

      \n
      \n

      示例

      \n
      function isEven(n) {\n  return n % 2 == 0;\n}\n\n_.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n// => [1, 3, 5]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/once", - "html":"

      once source npm

      \n
      _.once(func)
      \n\n

      创建一个只能调用一次的函数。\n重复调用返回第一次调用的结果。\nfunc 调用时,this 绑定到创建的函数,并传入对应参数。

      \n
      \n\n

      参数

      \n
        \n
      1. func (Function)

        指定的触发的函数

        \n
      2. \n
      \n

      返回值 (Function)

      \n

      返回受限的函数

      \n
      \n

      示例

      \n
      var initialize = _.once(createApplication);\ninitialize();\ninitialize();\n// `initialize` 只能调用 `createApplication` 一次。\n
      \n
      \n
      \n\n
      " } + "html":"

      once source npm

      \n
      _.once(func)
      \n\n

      创建一个只能调用一次的函数。\n重复调用返回第一次调用的结果。\nfunc 调用时,this 绑定到创建的函数,并传入对应参数。

      \n
      \n\n

      参数

      \n
        \n
      1. func (Function)

        指定的触发的函数

        \n
      2. \n
      \n

      返回值 (Function)

      \n

      返回受限的函数

      \n
      \n

      示例

      \n
      var initialize = _.once(createApplication);\ninitialize();\ninitialize();\n// `initialize` 只能调用 `createApplication` 一次。\n
      \n
      \n
      \n\n
      " } ,{ "href":"/overArgs", - "html":"

      overArgs source npm

      \n
      _.overArgs(func, [transforms])
      \n\n

      创建一个函数,调用时func 参数会先一对一的改变。

      \n
      \n\n

      参数

      \n
        \n
      1. func (Function)

        要包裹的函数

        \n
      2. \n
      3. [transforms] (...(Function|Function[])

        这个函数会改变传参,单独指定或者指定在数组中

        \n
      4. \n
      \n

      返回值 (Function)

      \n

      返回新函数

      \n
      \n

      示例

      \n
      function doubled(n) {\n  return n * 2;\n}\n\nfunction square(n) {\n  return n * n;\n}\n\nvar func = _.overArgs(function(x, y) {\n  return [x, y];\n}, square, doubled);\n\nfunc(9, 3);\n// => [81, 6]\n\nfunc(10, 5);\n// => [100, 10]\n
      \n
      \n
      \n\n
      " } + "html":"

      overArgs source npm

      \n
      _.overArgs(func, [transforms])
      \n\n

      创建一个函数,调用时func 参数会先一对一的改变。

      \n
      \n\n

      参数

      \n
        \n
      1. func (Function)

        要包裹的函数

        \n
      2. \n
      3. [transforms] (...(Function|Function[])

        这个函数会改变传参,单独指定或者指定在数组中

        \n
      4. \n
      \n

      返回值 (Function)

      \n

      返回新函数

      \n
      \n

      示例

      \n
      function doubled(n) {\n  return n * 2;\n}\n\nfunction square(n) {\n  return n * n;\n}\n\nvar func = _.overArgs(function(x, y) {\n  return [x, y];\n}, square, doubled);\n\nfunc(9, 3);\n// => [81, 6]\n\nfunc(10, 5);\n// => [100, 10]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/partial", - "html":"

      partial source npm

      \n
      _.partial(func, [partials])
      \n\n

      创建一个函数。\n该函数调用 func,并传入预设的参数。\n这个方法类似 _.bind,除了它不会绑定 this。\n这个 _.partial.placeholder 的值,默认是以 _ 作为附加部分参数的占位符。\n
      \n
      \n注意: 这个方法不会设置 "length" 到函数上。

      \n
      \n\n

      参数

      \n
        \n
      1. func (Function)

        需要预设的函数

        \n
      2. \n
      3. [partials] (...*)

        预设的参数

        \n
      4. \n
      \n

      返回值 (Function)

      \n

      返回预设参数的函数

      \n
      \n

      示例

      \n
      var greet = function(greeting, name) {\n  return greeting + ' ' + name;\n};\n\nvar sayHelloTo = _.partial(greet, 'hello');\nsayHelloTo('fred');\n// => 'hello fred'\n\n// 使用了占位符\nvar greetFred = _.partial(greet, _, 'fred');\ngreetFred('hi');\n// => 'hi fred'\n
      \n
      \n
      \n\n
      " } + "html":"

      partial source npm

      \n
      _.partial(func, [partials])
      \n\n

      创建一个函数。\n该函数调用 func,并传入预设的参数。\n这个方法类似 _.bind,除了它不会绑定 this。\n这个 _.partial.placeholder 的值,默认是以 _ 作为附加部分参数的占位符。\n
      \n
      \n注意: 这个方法不会设置 "length" 到函数上。

      \n
      \n\n

      参数

      \n
        \n
      1. func (Function)

        需要预设的函数

        \n
      2. \n
      3. [partials] (...*)

        预设的参数

        \n
      4. \n
      \n

      返回值 (Function)

      \n

      返回预设参数的函数

      \n
      \n

      示例

      \n
      var greet = function(greeting, name) {\n  return greeting + ' ' + name;\n};\n\nvar sayHelloTo = _.partial(greet, 'hello');\nsayHelloTo('fred');\n// => 'hello fred'\n\n// 使用了占位符\nvar greetFred = _.partial(greet, _, 'fred');\ngreetFred('hi');\n// => 'hi fred'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/partialRight", - "html":"

      partialRight source npm

      \n
      _.partialRight(func, [partials])
      \n\n

      这个函数类似 _.partial,除了它是从右到左预设参数的。\n这个 .partialRight.placeholder 的值,默认是以 作为附加部分参数的占位符。\n
      \n
      \n注意: 这个方法不会设置 "length" 到函数上。

      \n
      \n\n

      参数

      \n
        \n
      1. func (Function)

        需要预设的函数

        \n
      2. \n
      3. [partials] (...*)

        预设的参数

        \n
      4. \n
      \n

      返回值 (Function)

      \n

      返回预设参数的函数

      \n
      \n

      示例

      \n
      var greet = function(greeting, name) {\n  return greeting + ' ' + name;\n};\n\nvar greetFred = _.partialRight(greet, 'fred');\ngreetFred('hi');\n// => 'hi fred'\n\n// 使用了占位符\nvar sayHelloTo = _.partialRight(greet, 'hello', _);\nsayHelloTo('fred');\n// => 'hello fred'\n
      \n
      \n
      \n\n
      " } + "html":"

      partialRight source npm

      \n
      _.partialRight(func, [partials])
      \n\n

      这个函数类似 _.partial,除了它是从右到左预设参数的。\n这个 .partialRight.placeholder 的值,默认是以 作为附加部分参数的占位符。\n
      \n
      \n注意: 这个方法不会设置 "length" 到函数上。

      \n
      \n\n

      参数

      \n
        \n
      1. func (Function)

        需要预设的函数

        \n
      2. \n
      3. [partials] (...*)

        预设的参数

        \n
      4. \n
      \n

      返回值 (Function)

      \n

      返回预设参数的函数

      \n
      \n

      示例

      \n
      var greet = function(greeting, name) {\n  return greeting + ' ' + name;\n};\n\nvar greetFred = _.partialRight(greet, 'fred');\ngreetFred('hi');\n// => 'hi fred'\n\n// 使用了占位符\nvar sayHelloTo = _.partialRight(greet, 'hello', _);\nsayHelloTo('fred');\n// => 'hello fred'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/rearg", - "html":"

      rearg source npm

      \n
      _.rearg(func, indexes)
      \n\n

      创建一个调用 func 的函数。\n所传递的参数根据 indexes 调整到对应位置。\n第一个 index 对应到第一个传参,第二个 index 对应到第二个传参,以此类推。

      \n
      \n\n

      参数

      \n
        \n
      1. func (Function)

        待调用的函数

        \n
      2. \n
      3. indexes (...(number|number[])

        重新排列参数的位置,单独指定或者指定在数组中

        \n
      4. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      var rearged = _.rearg(function(a, b, c) {\n  return [a, b, c];\n}, 2, 0, 1);\n\nrearged('b', 'c', 'a')\n// => ['a', 'b', 'c']\n
      \n
      \n
      \n\n
      " } + "html":"

      rearg source npm

      \n
      _.rearg(func, indexes)
      \n\n

      创建一个调用 func 的函数。\n所传递的参数根据 indexes 调整到对应位置。\n第一个 index 对应到第一个传参,第二个 index 对应到第二个传参,以此类推。

      \n
      \n\n

      参数

      \n
        \n
      1. func (Function)

        待调用的函数

        \n
      2. \n
      3. indexes (...(number|number[])

        重新排列参数的位置,单独指定或者指定在数组中

        \n
      4. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      var rearged = _.rearg(function(a, b, c) {\n  return [a, b, c];\n}, 2, 0, 1);\n\nrearged('b', 'c', 'a')\n// => ['a', 'b', 'c']\n
      \n
      \n
      \n\n
      " } ,{ "href":"/rest", - "html":"

      rest source npm

      \n
      _.rest(func, [start=func.length-1])
      \n\n

      创建一个调用 func 的函数。\nthis 绑定到这个函数 并且 从 start 之后的参数都作为数组传入。\n
      \n
      \n注意: 这个方法基于rest parameter

      \n
      \n\n

      参数

      \n
        \n
      1. func (Function)

        要应用的函数

        \n
      2. \n
      3. [start=func.length-1] (number)

        从第几个参数开始应用

        \n
      4. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      var say = _.rest(function(what, names) {\n  return what + ' ' + _.initial(names).join(', ') +\n    (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n});\n\nsay('hello', 'fred', 'barney', 'pebbles');\n// => 'hello fred, barney, & pebbles'\n
      \n
      \n
      \n\n
      " } + "html":"

      rest source npm

      \n
      _.rest(func, [start=func.length-1])
      \n\n

      创建一个调用 func 的函数。\nthis 绑定到这个函数 并且 从 start 之后的参数都作为数组传入。\n
      \n
      \n注意: 这个方法基于rest parameter

      \n
      \n\n

      参数

      \n
        \n
      1. func (Function)

        要应用的函数

        \n
      2. \n
      3. [start=func.length-1] (number)

        从第几个参数开始应用

        \n
      4. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      var say = _.rest(function(what, names) {\n  return what + ' ' + _.initial(names).join(', ') +\n    (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n});\n\nsay('hello', 'fred', 'barney', 'pebbles');\n// => 'hello fred, barney, & pebbles'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/spread", - "html":"

      spread source npm

      \n
      _.spread(func)
      \n\n

      创建一个调用 func 的函数。 this 绑定到这个函数上。\n把参数作为数组传入,类似于 Function#apply\n
      \n
      \n注意: 这个方法基于 spread operator

      \n
      \n\n

      参数

      \n
        \n
      1. func (Function)

        要应用的函数

        \n
      2. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      var say = _.spread(function(who, what) {\n  return who + ' says ' + what;\n});\n\nsay(['fred', 'hello']);\n// => 'fred says hello'\n\n// 使用在 Promise\nvar numbers = Promise.all([\n  Promise.resolve(40),\n  Promise.resolve(36)\n]);\n\nnumbers.then(_.spread(function(x, y) {\n  return x + y;\n}));\n// => 返回 76\n
      \n
      \n
      \n\n
      " } + "html":"

      spread source npm

      \n
      _.spread(func)
      \n\n

      创建一个调用 func 的函数。 this 绑定到这个函数上。\n把参数作为数组传入,类似于 Function#apply\n
      \n
      \n注意: 这个方法基于 spread operator

      \n
      \n\n

      参数

      \n
        \n
      1. func (Function)

        要应用的函数

        \n
      2. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      var say = _.spread(function(who, what) {\n  return who + ' says ' + what;\n});\n\nsay(['fred', 'hello']);\n// => 'fred says hello'\n\n// 使用在 Promise\nvar numbers = Promise.all([\n  Promise.resolve(40),\n  Promise.resolve(36)\n]);\n\nnumbers.then(_.spread(function(x, y) {\n  return x + y;\n}));\n// => 返回 76\n
      \n
      \n
      \n\n
      " } ,{ "href":"/throttle", - "html":"

      throttle source npm

      \n
      _.throttle(func, [wait=0], [options])
      \n\n

      创建一个节流函数,在 wait 秒内最多执行 func 一次的函数。\n该函数提供一个 cancel 方法取消延迟的函数调用以及 flush 方法立即调用。\n可以提供一个 options 对象决定如何调用 func 方法, options.leading 与|或 options.trailing 决定 wait 前后如何触发。 func 会传入最后一次传入的参数给这个函数。 随后调用的函数返回是最后一次 func 调用的结果。 \n
      \n
      \n注意: 如果 leading 和 trailing 都设定为 true。 则 func 允许 trailing 方式调用的条件为: 在 wait 期间多次调用。 \n
      \n
      \n查看 David Corbacho's article\n了解 _.throttle_.debounce 的区别

      \n
      \n\n

      参数

      \n
        \n
      1. func (Function)

        要节流的函数

        \n
      2. \n
      3. [wait=0] (number)

        需要节流的毫秒

        \n
      4. \n
      5. [options] (Object)

        选项对象

        \n
      6. \n
      7. [options.leading=true] (boolean)

        指定调用在节流开始前

        \n
      8. \n
      9. [options.trailing=true] (boolean)

        指定调用在节流结束后

        \n
      10. \n
      \n

      返回值 (Function)

      \n

      返回节流的函数

      \n
      \n

      示例

      \n
      // 避免在滚动时过分的更新定位\njQuery(window).on('scroll', _.throttle(updatePosition, 100));\n\n// 点击后就调用 `renewToken`,但5分钟内超过1次。\nvar throttled = _.throttle(renewToken, 300000, { 'trailing': false });\njQuery(element).on('click', throttled);\n\n// 取消一个 trailing 的节流调用\njQuery(window).on('popstate', throttled.cancel);\n
      \n
      \n
      \n\n
      " } + "html":"

      throttle source npm

      \n
      _.throttle(func, [wait=0], [options])
      \n\n

      创建一个节流函数,在 wait 秒内最多执行 func 一次的函数。\n该函数提供一个 cancel 方法取消延迟的函数调用以及 flush 方法立即调用。\n可以提供一个 options 对象决定如何调用 func 方法, options.leading 与|或 options.trailing 决定 wait 前后如何触发。 func 会传入最后一次传入的参数给这个函数。 随后调用的函数返回是最后一次 func 调用的结果。\n
      \n
      \n注意: 如果 leading 和 trailing 都设定为 true。 则 func 允许 trailing 方式调用的条件为: 在 wait 期间多次调用。\n
      \n
      \n查看 David Corbacho's article\n了解 _.throttle_.debounce 的区别

      \n
      \n\n

      参数

      \n
        \n
      1. func (Function)

        要节流的函数

        \n
      2. \n
      3. [wait=0] (number)

        需要节流的毫秒

        \n
      4. \n
      5. [options] (Object)

        选项对象

        \n
      6. \n
      7. [options.leading=true] (boolean)

        指定调用在节流开始前

        \n
      8. \n
      9. [options.trailing=true] (boolean)

        指定调用在节流结束后

        \n
      10. \n
      \n

      返回值 (Function)

      \n

      返回节流的函数

      \n
      \n

      示例

      \n
      // 避免在滚动时过分的更新定位\njQuery(window).on('scroll', _.throttle(updatePosition, 100));\n\n// 点击后就调用 `renewToken`,但5分钟内超过1次。\nvar throttled = _.throttle(renewToken, 300000, { 'trailing': false });\njQuery(element).on('click', throttled);\n\n// 取消一个 trailing 的节流调用\njQuery(window).on('popstate', throttled.cancel);\n
      \n
      \n
      \n\n
      " } ,{ "href":"/unary", - "html":"

      unary source npm

      \n
      _.unary(func)
      \n\n

      创建一个最多接受一个参数的函数,忽略多余的参数。

      \n
      \n\n

      参数

      \n
        \n
      1. func (Function)

        要处理的函数

        \n
      2. \n
      \n

      返回值 (Function)

      \n

      返回新函数

      \n
      \n

      示例

      \n
      _.map(['6', '8', '10'], _.unary(parseInt));\n// => [6, 8, 10]\n
      \n
      \n
      \n\n
      " } + "html":"

      unary source npm

      \n
      _.unary(func)
      \n\n

      创建一个最多接受一个参数的函数,忽略多余的参数。

      \n
      \n\n

      参数

      \n
        \n
      1. func (Function)

        要处理的函数

        \n
      2. \n
      \n

      返回值 (Function)

      \n

      返回新函数

      \n
      \n

      示例

      \n
      _.map(['6', '8', '10'], _.unary(parseInt));\n// => [6, 8, 10]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/wrap", - "html":"

      wrap source npm

      \n
      _.wrap(value, wrapper)
      \n\n

      创建一个函数。提供的 value 包装在 wrapper 函数的第一个参数里。\n任何附加的参数都提供给 wrapper 函数。\n被调用时 this 绑定在创建的函数上。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要包装的值

        \n
      2. \n
      3. wrapper (Function)

        包装函数

        \n
      4. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      var p = _.wrap(_.escape, function(func, text) {\n  return '<p>' + func(text) + '</p>';\n});\n\np('fred, barney, & pebbles');\n// => '<p>fred, barney, &amp; pebbles</p>'\n
      \n
      \n
      \n\n
      " } + "html":"

      wrap source npm

      \n
      _.wrap(value, wrapper)
      \n\n

      创建一个函数。提供的 value 包装在 wrapper 函数的第一个参数里。\n任何附加的参数都提供给 wrapper 函数。\n被调用时 this 绑定在创建的函数上。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要包装的值

        \n
      2. \n
      3. wrapper (Function)

        包装函数

        \n
      4. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      var p = _.wrap(_.escape, function(func, text) {\n  return '<p>' + func(text) + '</p>';\n});\n\np('fred, barney, & pebbles');\n// => '<p>fred, barney, &amp; pebbles</p>'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/clone", - "html":"

      clone source npm

      \n
      _.clone(value)
      \n\n

      创建一个 value 的浅拷贝。\n
      \n
      \n注意: 这个方法参考自\nstructured clone algorithm\n以及支持 arrays、array buffers、 booleans、 date objects、maps、\nnumbers, Object objects, regexes, sets, strings, symbols, 以及 typed\narrays。\n参数对象的可枚举属性会拷贝为普通对象。\n一些不可拷贝的对象,例如error objects、functions, DOM nodes, 以及 WeakMaps 会返回空对象。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要拷贝的值

        \n
      2. \n
      \n

      返回值 (*)

      \n

      返回拷贝后的值

      \n
      \n

      示例

      \n
      var users = [\n  { 'user': 'barney' },\n  { 'user': 'fred' }\n];\n\nvar shallow = _.clone(users);\nconsole.log(shallow[0] === users[0]);\n// => true\n
      \n
      \n
      \n\n
      " } + "html":"

      clone source npm

      \n
      _.clone(value)
      \n\n

      创建一个 value 的浅拷贝。\n
      \n
      \n注意: 这个方法参考自\nstructured clone algorithm\n以及支持 arrays、array buffers、 booleans、 date objects、maps、\nnumbers, Object objects, regexes, sets, strings, symbols, 以及 typed\narrays。\n参数对象的可枚举属性会拷贝为普通对象。\n一些不可拷贝的对象,例如error objects、functions, DOM nodes, 以及 WeakMaps 会返回空对象。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要拷贝的值

        \n
      2. \n
      \n

      返回值 (*)

      \n

      返回拷贝后的值

      \n
      \n

      示例

      \n
      var objects = [{ 'a': 1 }, { 'b': 2 }];\n\nvar shallow = _.clone(objects);\nconsole.log(shallow[0] === objects[0]);\n// => true\n
      \n
      \n
      \n\n
      " } ,{ "href":"/cloneDeep", - "html":"

      cloneDeep source npm

      \n
      _.cloneDeep(value)
      \n\n

      这个方法类似 _.clone,除了它会递归拷贝 value

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要深拷贝的值

        \n
      2. \n
      \n

      返回值 (*)

      \n

      返回拷贝后的值

      \n
      \n

      示例

      \n
      var users = [\n  { 'user': 'barney' },\n  { 'user': 'fred' }\n];\n\nvar deep = _.cloneDeep(users);\nconsole.log(deep[0] === users[0]);\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      cloneDeep source npm

      \n
      _.cloneDeep(value)
      \n\n

      这个方法类似 _.clone,除了它会递归拷贝 value

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要深拷贝的值

        \n
      2. \n
      \n

      返回值 (*)

      \n

      返回拷贝后的值

      \n
      \n

      示例

      \n
      var objects = [{ 'a': 1 }, { 'b': 2 }];\n\nvar deep = _.cloneDeep(objects);\nconsole.log(deep[0] === objects[0]);\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/cloneDeepWith", - "html":"

      cloneDeepWith source npm

      \n
      _.cloneDeepWith(value, [customizer])
      \n\n

      这个方法类似 _.cloneWith,除了它会递归拷贝 value

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要深拷贝的值

        \n
      2. \n
      3. [customizer] (Function)

        这个函数定制返回的拷贝值

        \n
      4. \n
      \n

      返回值 (*)

      \n

      返回拷贝后的值

      \n
      \n

      示例

      \n
      function customizer(value) {\n  if (_.isElement(value)) {\n    return value.cloneNode(true);\n  }\n}\n\nvar el = _.cloneDeep(document.body, customizer);\n\nconsole.log(el === document.body);\n// => false\nconsole.log(el.nodeName);\n// => BODY\nconsole.log(el.childNodes.length);\n// => 20\n
      \n
      \n
      \n\n
      " } + "html":"

      cloneDeepWith source npm

      \n
      _.cloneDeepWith(value, [customizer])
      \n\n

      这个方法类似 _.cloneWith,除了它会递归拷贝 value

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要深拷贝的值

        \n
      2. \n
      3. [customizer] (Function)

        这个函数定制返回的拷贝值

        \n
      4. \n
      \n

      返回值 (*)

      \n

      返回拷贝后的值

      \n
      \n

      示例

      \n
      function customizer(value) {\n  if (_.isElement(value)) {\n    return value.cloneNode(true);\n  }\n}\n\nvar el = _.cloneDeep(document.body, customizer);\n\nconsole.log(el === document.body);\n// => false\nconsole.log(el.nodeName);\n// => BODY\nconsole.log(el.childNodes.length);\n// => 20\n
      \n
      \n
      \n\n
      " } ,{ "href":"/cloneWith", - "html":"

      cloneWith source npm

      \n
      _.cloneWith(value, [customizer])
      \n\n

      这个方法类似 _.clone,除了它接受一个 customizer 定制返回的拷贝值。\n如果 customizer 返回 undefined 将会拷贝处理方法代替。\ncustomizer 会传入5个参数:(value [, index|key, object, stack])

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要拷贝的值

        \n
      2. \n
      3. [customizer] (Function)

        这个函数定制返回的拷贝值

        \n
      4. \n
      \n

      返回值 (*)

      \n

      返回拷贝后的值

      \n
      \n

      示例

      \n
      function customizer(value) {\n  if (_.isElement(value)) {\n    return value.cloneNode(false);\n  }\n}\n\nvar el = _.clone(document.body, customizer);\n\nconsole.log(el === document.body);\n// => false\nconsole.log(el.nodeName);\n// => BODY\nconsole.log(el.childNodes.length);\n// => 0\n
      \n
      \n
      \n\n
      " } + "html":"

      cloneWith source npm

      \n
      _.cloneWith(value, [customizer])
      \n\n

      这个方法类似 _.clone,除了它接受一个 customizer 定制返回的拷贝值。\n如果 customizer 返回 undefined 将会拷贝处理方法代替。\ncustomizer 会传入5个参数:(value [, index|key, object, stack])

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要拷贝的值

        \n
      2. \n
      3. [customizer] (Function)

        这个函数定制返回的拷贝值

        \n
      4. \n
      \n

      返回值 (*)

      \n

      返回拷贝后的值

      \n
      \n

      示例

      \n
      function customizer(value) {\n  if (_.isElement(value)) {\n    return value.cloneNode(false);\n  }\n}\n\nvar el = _.cloneWith(document.body, customizer);\n\nconsole.log(el === document.body);\n// => false\nconsole.log(el.nodeName);\n// => 'BODY'\nconsole.log(el.childNodes.length);\n// => 0\n
      \n
      \n
      \n\n
      " } ,{ "href":"/eq", - "html":"

      eq source npm

      \n
      _.eq(value, other)
      \n\n

      执行 SameValueZero 比较两者的值确定它们是否相等。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要比较的值

        \n
      2. \n
      3. other (*)

        其他要比较的值

        \n
      4. \n
      \n

      返回值 (boolean)

      \n

      相等返回 true,否则返回 false

      \n
      \n

      示例

      \n
      var object = { 'user': 'fred' };\nvar other = { 'user': 'fred' };\n\n_.eq(object, object);\n// => true\n\n_.eq(object, other);\n// => false\n\n_.eq('a', 'a');\n// => true\n\n_.eq('a', Object('a'));\n// => false\n\n_.eq(NaN, NaN);\n// => true\n
      \n
      \n
      \n\n
      " } + "html":"

      eq source npm

      \n
      _.eq(value, other)
      \n\n

      执行 SameValueZero 比较两者的值确定它们是否相等。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要比较的值

        \n
      2. \n
      3. other (*)

        其他要比较的值

        \n
      4. \n
      \n

      返回值 (boolean)

      \n

      相等返回 true,否则返回 false

      \n
      \n

      示例

      \n
      var object = { 'user': 'fred' };\nvar other = { 'user': 'fred' };\n\n_.eq(object, object);\n// => true\n\n_.eq(object, other);\n// => false\n\n_.eq('a', 'a');\n// => true\n\n_.eq('a', Object('a'));\n// => false\n\n_.eq(NaN, NaN);\n// => true\n
      \n
      \n
      \n\n
      " } ,{ "href":"/gt", - "html":"

      gt source npm

      \n
      _.gt(value, other)
      \n\n

      检查 value 是否大于 other

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要比较的值

        \n
      2. \n
      3. other (*)

        其他要比较的值

        \n
      4. \n
      \n

      返回值 (boolean)

      \n

      如果 value 大于 other,返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.gt(3, 1);\n// => true\n\n_.gt(3, 3);\n// => false\n\n_.gt(1, 3);\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      gt source npm

      \n
      _.gt(value, other)
      \n\n

      检查 value 是否大于 other

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要比较的值

        \n
      2. \n
      3. other (*)

        其他要比较的值

        \n
      4. \n
      \n

      返回值 (boolean)

      \n

      如果 value 大于 other,返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.gt(3, 1);\n// => true\n\n_.gt(3, 3);\n// => false\n\n_.gt(1, 3);\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/gte", - "html":"

      gte source npm

      \n
      _.gte(value, other)
      \n\n

      检查 value 是否大于等于 other

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要比较的值

        \n
      2. \n
      3. other (*)

        其他要比较的值

        \n
      4. \n
      \n

      返回值 (boolean)

      \n

      如果 value 大于等于 other,返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.gte(3, 1);\n// => true\n\n_.gte(3, 3);\n// => true\n\n_.gte(1, 3);\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      gte source npm

      \n
      _.gte(value, other)
      \n\n

      检查 value 是否大于等于 other

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要比较的值

        \n
      2. \n
      3. other (*)

        其他要比较的值

        \n
      4. \n
      \n

      返回值 (boolean)

      \n

      如果 value 大于等于 other,返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.gte(3, 1);\n// => true\n\n_.gte(3, 3);\n// => true\n\n_.gte(1, 3);\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/isArguments", - "html":"

      isArguments source npm

      \n
      _.isArguments(value)
      \n\n

      检查 value 是否是 类 arguments 对象。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是正确的类型,返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isArguments(function() { return arguments; }());\n// => true\n\n_.isArguments([1, 2, 3]);\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      isArguments source npm

      \n
      _.isArguments(value)
      \n\n

      检查 value 是否是 类 arguments 对象。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是正确的类型,返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isArguments(function() { return arguments; }());\n// => true\n\n_.isArguments([1, 2, 3]);\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/isArray", - "html":"

      isArray source npm

      \n
      _.isArray(value)
      \n\n

      检查 value 是否是 Array 类对象。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是正确的类型,返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isArray([1, 2, 3]);\n// => true\n\n_.isArray(document.body.children);\n// => false\n\n_.isArray('abc');\n// => false\n\n_.isArray(_.noop);\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      isArray source npm

      \n
      _.isArray(value)
      \n\n

      检查 value 是否是 Array 类对象。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是正确的类型,返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isArray([1, 2, 3]);\n// => true\n\n_.isArray(document.body.children);\n// => false\n\n_.isArray('abc');\n// => false\n\n_.isArray(_.noop);\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/isArrayLike", - "html":"

      isArrayLike source npm

      \n
      _.isArrayLike(value)
      \n\n

      检查 value 是否是类数组。\n如果是类数组的话,应该不是一个函数,而且 value.length 是个整数,大于等于 0,小于或等于 Number.MAX_SAFE_INTEGER

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是类数组,返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isArrayLike([1, 2, 3]);\n// => true\n\n_.isArrayLike(document.body.children);\n// => true\n\n_.isArrayLike('abc');\n// => true\n\n_.isArrayLike(_.noop);\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      isArrayLike source npm

      \n
      _.isArrayLike(value)
      \n\n

      检查 value 是否是类数组。\n如果是类数组的话,应该不是一个函数,而且 value.length 是个整数,大于等于 0,小于或等于 Number.MAX_SAFE_INTEGER

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是类数组,返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isArrayLike([1, 2, 3]);\n// => true\n\n_.isArrayLike(document.body.children);\n// => true\n\n_.isArrayLike('abc');\n// => true\n\n_.isArrayLike(_.noop);\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/isArrayLikeObject", - "html":"

      isArrayLikeObject source npm

      \n
      _.isArrayLikeObject(value)
      \n\n

      这个方法类似 _.isArrayLike,除了它还检查值是否是个对象。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是类数组对象,返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isArrayLikeObject([1, 2, 3]);\n// => true\n\n_.isArrayLikeObject(document.body.children);\n// => true\n\n_.isArrayLikeObject('abc');\n// => false\n\n_.isArrayLikeObject(_.noop);\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      isArrayLikeObject source npm

      \n
      _.isArrayLikeObject(value)
      \n\n

      这个方法类似 _.isArrayLike,除了它还检查值是否是个对象。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是类数组对象,返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isArrayLikeObject([1, 2, 3]);\n// => true\n\n_.isArrayLikeObject(document.body.children);\n// => true\n\n_.isArrayLikeObject('abc');\n// => false\n\n_.isArrayLikeObject(_.noop);\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/isBoolean", - "html":"

      isBoolean source npm

      \n
      _.isBoolean(value)
      \n\n

      检查 value 是否是原始 boolean 类型或者对象。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是正确的类型,返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isBoolean(false);\n// => true\n\n_.isBoolean(null);\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      isBoolean source npm

      \n
      _.isBoolean(value)
      \n\n

      检查 value 是否是原始 boolean 类型或者对象。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是正确的类型,返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isBoolean(false);\n// => true\n\n_.isBoolean(null);\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/isDate", - "html":"

      isDate source npm

      \n
      _.isDate(value)
      \n\n

      检查 value 是否是 Date 类型

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是正确的类型,返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isDate(new Date);\n// => true\n\n_.isDate('Mon April 23 2012');\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      isDate source npm

      \n
      _.isDate(value)
      \n\n

      检查 value 是否是 Date 类型

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是正确的类型,返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isDate(new Date);\n// => true\n\n_.isDate('Mon April 23 2012');\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/isElement", - "html":"

      isElement source npm

      \n
      _.isElement(value)
      \n\n

      检查 value 是否是可能是 DOM 元素

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是 DOM 元素返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isElement(document.body);\n// => true\n\n_.isElement('<body>');\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      isElement source npm

      \n
      _.isElement(value)
      \n\n

      检查 value 是否是可能是 DOM 元素

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是 DOM 元素返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isElement(document.body);\n// => true\n\n_.isElement('<body>');\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/isEmpty", - "html":"

      isEmpty source npm

      \n
      _.isEmpty(value)
      \n\n

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

      \n
      \n\n

      参数

      \n
        \n
      1. value (Array|Object|string)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果为空返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isEmpty(null);\n// => true\n\n_.isEmpty(true);\n// => true\n\n_.isEmpty(1);\n// => true\n\n_.isEmpty([1, 2, 3]);\n// => false\n\n_.isEmpty({ 'a': 1 });\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      isEmpty source npm

      \n
      _.isEmpty(value)
      \n\n

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

      \n
      \n\n

      参数

      \n
        \n
      1. value (Array|Object|string)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果为空返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isEmpty(null);\n// => true\n\n_.isEmpty(true);\n// => true\n\n_.isEmpty(1);\n// => true\n\n_.isEmpty([1, 2, 3]);\n// => false\n\n_.isEmpty({ 'a': 1 });\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/isEqual", - "html":"

      isEqual source npm

      \n
      _.isEqual(value, other)
      \n\n

      执行深比较来决定两者的值是否相等。\n
      \n
      \n注意: 这个方法支持比较 arrays, array buffers, booleans,\ndate objects, error objects, maps, numbers, Object objects, regexes,\nsets, strings, symbols, 以及 typed arrays. Object 对象值比较自身的属性,不包括继承的和可枚举的属性。\n不支持函数和DOM节点。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要比较的值

        \n
      2. \n
      3. other (*)

        其他要比较的值

        \n
      4. \n
      \n

      返回值 (boolean)

      \n

      如果相等返回 true,否则返回 false

      \n
      \n

      示例

      \n
      var object = { 'user': 'fred' };\nvar other = { 'user': 'fred' };\n\n_.isEqual(object, other);\n// => true\n\nobject === other;\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      isEqual source npm

      \n
      _.isEqual(value, other)
      \n\n

      执行深比较来决定两者的值是否相等。\n
      \n
      \n注意: 这个方法支持比较 arrays, array buffers, booleans,\ndate objects, error objects, maps, numbers, Object objects, regexes,\nsets, strings, symbols, 以及 typed arrays. Object 对象值比较自身的属性,不包括继承的和可枚举的属性。\n不支持函数和DOM节点。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要比较的值

        \n
      2. \n
      3. other (*)

        其他要比较的值

        \n
      4. \n
      \n

      返回值 (boolean)

      \n

      如果相等返回 true,否则返回 false

      \n
      \n

      示例

      \n
      var object = { 'user': 'fred' };\nvar other = { 'user': 'fred' };\n\n_.isEqual(object, other);\n// => true\n\nobject === other;\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/isEqualWith", - "html":"

      isEqualWith source npm

      \n
      _.isEqualWith(value, other, [customizer])
      \n\n

      这个方法类似 _.isEqual。\n除了它接受一个 customizer 定制比较值。 如果 customizer 返回 undefined 将会比较处理方法代替。\ncustomizer 会传入7个参数:(objValue, othValue [, index|key, object, other, stack])

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要比较的值

        \n
      2. \n
      3. other (*)

        其他要比较的值

        \n
      4. \n
      5. [customizer] (Function)

        这个函数定制比较值

        \n
      6. \n
      \n

      返回值 (boolean)

      \n

      如果相等返回 true,否则返回 false

      \n
      \n

      示例

      \n
      function isGreeting(value) {\n  return /^h(?:i|ello)$/.test(value);\n}\n\nfunction customizer(objValue, othValue) {\n  if (isGreeting(objValue) && isGreeting(othValue)) {\n    return true;\n  }\n}\n\nvar array = ['hello', 'goodbye'];\nvar other = ['hi', 'goodbye'];\n\n_.isEqualWith(array, other, customizer);\n// => true\n
      \n
      \n
      \n\n
      " } + "html":"

      isEqualWith source npm

      \n
      _.isEqualWith(value, other, [customizer])
      \n\n

      这个方法类似 _.isEqual。\n除了它接受一个 customizer 定制比较值。 如果 customizer 返回 undefined 将会比较处理方法代替。\ncustomizer 会传入7个参数:(objValue, othValue [, index|key, object, other, stack])

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要比较的值

        \n
      2. \n
      3. other (*)

        其他要比较的值

        \n
      4. \n
      5. [customizer] (Function)

        这个函数定制比较值

        \n
      6. \n
      \n

      返回值 (boolean)

      \n

      如果相等返回 true,否则返回 false

      \n
      \n

      示例

      \n
      function isGreeting(value) {\n  return /^h(?:i|ello)$/.test(value);\n}\n\nfunction customizer(objValue, othValue) {\n  if (isGreeting(objValue) && isGreeting(othValue)) {\n    return true;\n  }\n}\n\nvar array = ['hello', 'goodbye'];\nvar other = ['hi', 'goodbye'];\n\n_.isEqualWith(array, other, customizer);\n// => true\n
      \n
      \n
      \n\n
      " } ,{ "href":"/isError", - "html":"

      isError source npm

      \n
      _.isError(value)
      \n\n

      检查 value 是否是 Error, EvalError, RangeError, ReferenceError,\nSyntaxError, TypeError, 或 URIError object.

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是 error object 返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isError(new Error);\n// => true\n\n_.isError(Error);\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      isError source npm

      \n
      _.isError(value)
      \n\n

      检查 value 是否是 Error, EvalError, RangeError, ReferenceError,\nSyntaxError, TypeError, 或 URIError object.

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是 error object 返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isError(new Error);\n// => true\n\n_.isError(Error);\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/isFinite", - "html":"

      isFinite source npm

      \n
      _.isFinite(value)
      \n\n

      检查 value 是否是原始 finite number。\n
      \n
      \n注意: 这个方法基于 Number.isFinite.

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是 finite number 返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isFinite(3);\n// => true\n\n_.isFinite(Number.MAX_VALUE);\n// => true\n\n_.isFinite(3.14);\n// => true\n\n_.isFinite(Infinity);\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      isFinite source npm

      \n
      _.isFinite(value)
      \n\n

      检查 value 是否是原始 finite number。\n
      \n
      \n注意: 这个方法基于 Number.isFinite.

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是 finite number 返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isFinite(3);\n// => true\n\n_.isFinite(Number.MAX_VALUE);\n// => true\n\n_.isFinite(3.14);\n// => true\n\n_.isFinite(Infinity);\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/isFunction", - "html":"

      isFunction source npm

      \n
      _.isFunction(value)
      \n\n

      检查 value 是否是 Function 对象。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是正确的类型,返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isFunction(_);\n// => true\n\n_.isFunction(/abc/);\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      isFunction source npm

      \n
      _.isFunction(value)
      \n\n

      检查 value 是否是 Function 对象。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是正确的类型,返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isFunction(_);\n// => true\n\n_.isFunction(/abc/);\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/isInteger", - "html":"

      isInteger source npm

      \n
      _.isInteger(value)
      \n\n

      检查 value 是否是整数。\n
      \n
      \n注意: 这个方法基于 Number.isInteger.

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是整数返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isInteger(3);\n// => true\n\n_.isInteger(Number.MIN_VALUE);\n// => false\n\n_.isInteger(Infinity);\n// => false\n\n_.isInteger('3');\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      isInteger source npm

      \n
      _.isInteger(value)
      \n\n

      检查 value 是否是整数。\n
      \n
      \n注意: 这个方法基于 Number.isInteger.

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是整数返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isInteger(3);\n// => true\n\n_.isInteger(Number.MIN_VALUE);\n// => false\n\n_.isInteger(Infinity);\n// => false\n\n_.isInteger('3');\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/isLength", - "html":"

      isLength source npm

      \n
      _.isLength(value)
      \n\n

      检查 value 是否是有效长度\n
      \n
      \n注意: 这个方法参考自 ToLength.

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是有效长度返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isLength(3);\n// => true\n\n_.isLength(Number.MIN_VALUE);\n// => false\n\n_.isLength(Infinity);\n// => false\n\n_.isLength('3');\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      isLength source npm

      \n
      _.isLength(value)
      \n\n

      检查 value 是否是有效长度\n
      \n
      \n注意: 这个方法参考自 ToLength.

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是有效长度返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isLength(3);\n// => true\n\n_.isLength(Number.MIN_VALUE);\n// => false\n\n_.isLength(Infinity);\n// => false\n\n_.isLength('3');\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/isMatch", - "html":"

      isMatch source npm

      \n
      _.isMatch(object, source)
      \n\n

      执行一个深比较来确定object 是否包含有 source 的属性值。\n
      \n
      \n注意: 这个方法支持比较相同的值和 _.isEqual 一样

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要检查的值

        \n
      2. \n
      3. source (Object)

        匹配包含在 object 的对象

        \n
      4. \n
      \n

      返回值 (boolean)

      \n

      如果匹配返回 true,否则返回 false

      \n
      \n

      示例

      \n
      var object = { 'user': 'fred', 'age': 40 };\n\n_.isMatch(object, { 'age': 40 });\n// => true\n\n_.isMatch(object, { 'age': 36 });\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      isMatch source npm

      \n
      _.isMatch(object, source)
      \n\n

      执行一个深比较来确定object 是否包含有 source 的属性值。\n
      \n
      \n注意: 这个方法支持比较相同的值和 _.isEqual 一样

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要检查的值

        \n
      2. \n
      3. source (Object)

        匹配包含在 object 的对象

        \n
      4. \n
      \n

      返回值 (boolean)

      \n

      如果匹配返回 true,否则返回 false

      \n
      \n

      示例

      \n
      var object = { 'user': 'fred', 'age': 40 };\n\n_.isMatch(object, { 'age': 40 });\n// => true\n\n_.isMatch(object, { 'age': 36 });\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/isMatchWith", - "html":"

      isMatchWith source npm

      \n
      _.isMatchWith(object, source, [customizer])
      \n\n

      这个方法类似 _.isMatch。\n除了它接受一个 customizer 定制比较的值。 \n如果 customizer 返回 undefined 将会比较处理方法代替。 customizer 会传入5个参数:(objValue, srcValue, index|key, object, source)

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要检查的值

        \n
      2. \n
      3. source (Object)

        匹配包含在 object 的对象

        \n
      4. \n
      5. [customizer] (Function)

        这个函数定制比较值

        \n
      6. \n
      \n

      返回值 (boolean)

      \n

      如果匹配返回 true,否则返回 false

      \n
      \n

      示例

      \n
      function isGreeting(value) {\n  return /^h(?:i|ello)$/.test(value);\n}\n\nfunction customizer(objValue, srcValue) {\n  if (isGreeting(objValue) && isGreeting(srcValue)) {\n    return true;\n  }\n}\n\nvar object = { 'greeting': 'hello' };\nvar source = { 'greeting': 'hi' };\n\n_.isMatchWith(object, source, customizer);\n// => true\n
      \n
      \n
      \n\n
      " } + "html":"

      isMatchWith source npm

      \n
      _.isMatchWith(object, source, [customizer])
      \n\n

      这个方法类似 _.isMatch。\n除了它接受一个 customizer 定制比较的值。\n如果 customizer 返回 undefined 将会比较处理方法代替。 customizer 会传入5个参数:(objValue, srcValue, index|key, object, source)

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要检查的值

        \n
      2. \n
      3. source (Object)

        匹配包含在 object 的对象

        \n
      4. \n
      5. [customizer] (Function)

        这个函数定制比较值

        \n
      6. \n
      \n

      返回值 (boolean)

      \n

      如果匹配返回 true,否则返回 false

      \n
      \n

      示例

      \n
      function isGreeting(value) {\n  return /^h(?:i|ello)$/.test(value);\n}\n\nfunction customizer(objValue, srcValue) {\n  if (isGreeting(objValue) && isGreeting(srcValue)) {\n    return true;\n  }\n}\n\nvar object = { 'greeting': 'hello' };\nvar source = { 'greeting': 'hi' };\n\n_.isMatchWith(object, source, customizer);\n// => true\n
      \n
      \n
      \n\n
      " } ,{ "href":"/isNaN", - "html":"

      isNaN source npm

      \n
      _.isNaN(value)
      \n\n

      检查 value 是否是 NaN.\n
      \n
      \n注意: 这个方法不同于 isNaN\n对 undefind 和 其他非数值返回 true.

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果符合 NaN 返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isNaN(NaN);\n// => true\n\n_.isNaN(new Number(NaN));\n// => true\n\nisNaN(undefined);\n// => true\n\n_.isNaN(undefined);\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      isNaN source npm

      \n
      _.isNaN(value)
      \n\n

      检查 value 是否是 NaN.\n
      \n
      \n注意: 这个方法不同于 isNaN\n对 undefind 和 其他非数值返回 true.

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果符合 NaN 返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isNaN(NaN);\n// => true\n\n_.isNaN(new Number(NaN));\n// => true\n\nisNaN(undefined);\n// => true\n\n_.isNaN(undefined);\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/isNative", - "html":"

      isNative source npm

      \n
      _.isNative(value)
      \n\n

      检查 value 是否是原生函数

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是原生函数返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isNative(Array.prototype.push);\n// => true\n\n_.isNative(_);\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      isNative source npm

      \n
      _.isNative(value)
      \n\n

      检查 value 是否是原生函数

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是原生函数返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isNative(Array.prototype.push);\n// => true\n\n_.isNative(_);\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/isNil", - "html":"

      isNil source npm

      \n
      _.isNil(value)
      \n\n

      检查 value 是否是 null 或者 undefined

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是 null 或者 undefined 返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isNil(null);\n// => true\n\n_.isNil(void 0);\n// => true\n\n_.isNil(NaN);\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      isNil source npm

      \n
      _.isNil(value)
      \n\n

      检查 value 是否是 null 或者 undefined

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是 null 或者 undefined 返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isNil(null);\n// => true\n\n_.isNil(void 0);\n// => true\n\n_.isNil(NaN);\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/isNull", - "html":"

      isNull source npm

      \n
      _.isNull(value)
      \n\n

      检查 value 是否是 null.

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是 null 返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isNull(null);\n// => true\n\n_.isNull(void 0);\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      isNull source npm

      \n
      _.isNull(value)
      \n\n

      检查 value 是否是 null.

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是 null 返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isNull(null);\n// => true\n\n_.isNull(void 0);\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/isNumber", - "html":"

      isNumber source npm

      \n
      _.isNumber(value)
      \n\n

      检查 value 是否是原始数值型 或者 对象。\n
      \n
      \n注意: 要排除 Infinity, -Infinity, 以及 NaN 数值类型,用 _.isFinite 方法

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是正确的类型,返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isNumber(3);\n// => true\n\n_.isNumber(Number.MIN_VALUE);\n// => true\n\n_.isNumber(Infinity);\n// => true\n\n_.isNumber('3');\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      isNumber source npm

      \n
      _.isNumber(value)
      \n\n

      检查 value 是否是原始数值型 或者 对象。\n
      \n
      \n注意: 要排除 Infinity, -Infinity, 以及 NaN 数值类型,用 _.isFinite 方法

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是正确的类型,返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isNumber(3);\n// => true\n\n_.isNumber(Number.MIN_VALUE);\n// => true\n\n_.isNumber(Infinity);\n// => true\n\n_.isNumber('3');\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/isObject", - "html":"

      isObject source npm

      \n
      _.isObject(value)
      \n\n

      检查 value 是否是 Objectlanguage type。\n(例如: arrays, functions, objects, regexes, new Number(0), 以及 new String(''))

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是对象返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isObject({});\n// => true\n\n_.isObject([1, 2, 3]);\n// => true\n\n_.isObject(_.noop);\n// => true\n\n_.isObject(null);\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      isObject source npm

      \n
      _.isObject(value)
      \n\n

      检查 value 是否是 Objectlanguage type。\n(例如: arrays, functions, objects, regexes, new Number(0), 以及 new String(''))

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是对象返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isObject({});\n// => true\n\n_.isObject([1, 2, 3]);\n// => true\n\n_.isObject(_.noop);\n// => true\n\n_.isObject(null);\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/isObjectLike", - "html":"

      isObjectLike source npm

      \n
      _.isObjectLike(value)
      \n\n

      检查 value 是否是 类对象。\n类对象应该不是 null 以及 typeof 的结果是 "object"。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是类对象返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isObjectLike({});\n// => true\n\n_.isObjectLike([1, 2, 3]);\n// => true\n\n_.isObjectLike(_.noop);\n// => false\n\n_.isObjectLike(null);\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      isObjectLike source npm

      \n
      _.isObjectLike(value)
      \n\n

      检查 value 是否是 类对象。\n类对象应该不是 null 以及 typeof 的结果是 "object"。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是类对象返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isObjectLike({});\n// => true\n\n_.isObjectLike([1, 2, 3]);\n// => true\n\n_.isObjectLike(_.noop);\n// => false\n\n_.isObjectLike(null);\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/isPlainObject", - "html":"

      isPlainObject source npm

      \n
      _.isPlainObject(value)
      \n\n

      检查 value 是否是普通对象。\n也就是说该对象由 Object 构造函数创建或者 [[Prototype]] 为空。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是普通对象返回 true,否则返回 false

      \n
      \n

      示例

      \n
      function Foo() {\n  this.a = 1;\n}\n\n_.isPlainObject(new Foo);\n// => false\n\n_.isPlainObject([1, 2, 3]);\n// => false\n\n_.isPlainObject({ 'x': 0, 'y': 0 });\n// => true\n\n_.isPlainObject(Object.create(null));\n// => true\n
      \n
      \n
      \n\n
      " } + "html":"

      isPlainObject source npm

      \n
      _.isPlainObject(value)
      \n\n

      检查 value 是否是普通对象。\n也就是说该对象由 Object 构造函数创建或者 [[Prototype]] 为空。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是普通对象返回 true,否则返回 false

      \n
      \n

      示例

      \n
      function Foo() {\n  this.a = 1;\n}\n\n_.isPlainObject(new Foo);\n// => false\n\n_.isPlainObject([1, 2, 3]);\n// => false\n\n_.isPlainObject({ 'x': 0, 'y': 0 });\n// => true\n\n_.isPlainObject(Object.create(null));\n// => true\n
      \n
      \n
      \n\n
      " } ,{ "href":"/isRegExp", - "html":"

      isRegExp source npm

      \n
      _.isRegExp(value)
      \n\n

      检查 value 是否是 RegExp 对象

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是正确的类型,返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isRegExp(/abc/);\n// => true\n\n_.isRegExp('/abc/');\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      isRegExp source npm

      \n
      _.isRegExp(value)
      \n\n

      检查 value 是否是 RegExp 对象

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是正确的类型,返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isRegExp(/abc/);\n// => true\n\n_.isRegExp('/abc/');\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/isSafeInteger", - "html":"

      isSafeInteger source npm

      \n
      _.isSafeInteger(value)
      \n\n

      检查 value 是否是安全整数。\n这个整数应该是符合 IEEE-754 标准的非双精度浮点数。\n
      \n
      \n注意: 这个方法基于 Number.isSafeInteger.

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是安全整数返回true,否则返回 false

      \n
      \n

      示例

      \n
      _.isSafeInteger(3);\n// => true\n\n_.isSafeInteger(Number.MIN_VALUE);\n// => false\n\n_.isSafeInteger(Infinity);\n// => false\n\n_.isSafeInteger('3');\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      isSafeInteger source npm

      \n
      _.isSafeInteger(value)
      \n\n

      检查 value 是否是安全整数。\n这个整数应该是符合 IEEE-754 标准的非双精度浮点数。\n
      \n
      \n注意: 这个方法基于 Number.isSafeInteger.

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是安全整数返回true,否则返回 false

      \n
      \n

      示例

      \n
      _.isSafeInteger(3);\n// => true\n\n_.isSafeInteger(Number.MIN_VALUE);\n// => false\n\n_.isSafeInteger(Infinity);\n// => false\n\n_.isSafeInteger('3');\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/isString", - "html":"

      isString source npm

      \n
      _.isString(value)
      \n\n

      检查 value 是否是原始字符串或者对象。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是正确的类型,返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isString('abc');\n// => true\n\n_.isString(1);\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      isString source npm

      \n
      _.isString(value)
      \n\n

      检查 value 是否是原始字符串或者对象。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是正确的类型,返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isString('abc');\n// => true\n\n_.isString(1);\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/isSymbol", - "html":"

      isSymbol source npm

      \n
      _.isSymbol(value)
      \n\n

      检查 value 是否是原始 Symbol 或者对象。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是正确的类型,返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isSymbol(Symbol.iterator);\n// => true\n\n_.isSymbol('abc');\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      isSymbol source npm

      \n
      _.isSymbol(value)
      \n\n

      检查 value 是否是原始 Symbol 或者对象。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是正确的类型,返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isSymbol(Symbol.iterator);\n// => true\n\n_.isSymbol('abc');\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/isTypedArray", - "html":"

      isTypedArray source npm

      \n
      _.isTypedArray(value)
      \n\n

      检查 value 是否是TypedArray。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是正确的类型,返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isTypedArray(new Uint8Array);\n// => true\n\n_.isTypedArray([]);\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      isTypedArray source npm

      \n
      _.isTypedArray(value)
      \n\n

      检查 value 是否是TypedArray。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      如果是正确的类型,返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.isTypedArray(new Uint8Array);\n// => true\n\n_.isTypedArray([]);\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/isUndefined", - "html":"

      isUndefined source npm

      \n
      _.isUndefined(value)
      \n\n

      检查 value 是否是 undefined.

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      Returns true if value is undefined否则返回 false

      \n
      \n

      示例

      \n
      _.isUndefined(void 0);\n// => true\n\n_.isUndefined(null);\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      isUndefined source npm

      \n
      _.isUndefined(value)
      \n\n

      检查 value 是否是 undefined.

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要检查的值

        \n
      2. \n
      \n

      返回值 (boolean)

      \n

      Returns true if value is undefined否则返回 false

      \n
      \n

      示例

      \n
      _.isUndefined(void 0);\n// => true\n\n_.isUndefined(null);\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/lt", - "html":"

      lt source npm

      \n
      _.lt(value, other)
      \n\n

      检查 value 是否是 小于 other

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要比较的值

        \n
      2. \n
      3. other (*)

        其他要比较的值

        \n
      4. \n
      \n

      返回值 (boolean)

      \n

      如果 value 小于 other 返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.lt(1, 3);\n// => true\n\n_.lt(3, 3);\n// => false\n\n_.lt(3, 1);\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      lt source npm

      \n
      _.lt(value, other)
      \n\n

      检查 value 是否是 小于 other

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要比较的值

        \n
      2. \n
      3. other (*)

        其他要比较的值

        \n
      4. \n
      \n

      返回值 (boolean)

      \n

      如果 value 小于 other 返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.lt(1, 3);\n// => true\n\n_.lt(3, 3);\n// => false\n\n_.lt(3, 1);\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/lte", - "html":"

      lte source npm

      \n
      _.lte(value, other)
      \n\n

      检查 value 是否是 小于等于 other.

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要比较的值

        \n
      2. \n
      3. other (*)

        其他要比较的值

        \n
      4. \n
      \n

      返回值 (boolean)

      \n

      如果 value 小于等于 other 返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.lte(1, 3);\n// => true\n\n_.lte(3, 3);\n// => true\n\n_.lte(3, 1);\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      lte source npm

      \n
      _.lte(value, other)
      \n\n

      检查 value 是否是 小于等于 other.

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要比较的值

        \n
      2. \n
      3. other (*)

        其他要比较的值

        \n
      4. \n
      \n

      返回值 (boolean)

      \n

      如果 value 小于等于 other 返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.lte(1, 3);\n// => true\n\n_.lte(3, 3);\n// => true\n\n_.lte(3, 1);\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/toArray", - "html":"

      toArray source npm

      \n
      _.toArray(value)
      \n\n

      转换 value 为数组

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要转换的值

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      然后转换后的数组

      \n
      \n

      示例

      \n
      (function() {\n  return _.toArray(arguments).slice(1);\n}(1, 2, 3));\n// => [2, 3]\n
      \n
      \n
      \n\n
      " } + "html":"

      toArray source npm

      \n
      _.toArray(value)
      \n\n

      转换 value 为数组

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要转换的值

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      然后转换后的数组

      \n
      \n

      示例

      \n
      _.toArray({ 'a': 1, 'b': 2 });\n// => [1, 2]\n\n_.toArray('abc');\n// => ['a', 'b', 'c']\n\n_.toArray(1);\n// => []\n\n_.toArray(null);\n// => []\n
      \n
      \n
      \n\n
      " } ,{ "href":"/toInteger", - "html":"

      toInteger source npm

      \n
      _.toInteger(value)
      \n\n

      转换 value 为整数\n
      \n
      \n注意: 这个函数参考 ToInteger.

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要转换的值

        \n
      2. \n
      \n

      返回值 (number)

      \n

      返回转换后的整数

      \n
      \n

      示例

      \n
      _.toInteger(3);\n// => 3\n\n_.toInteger(Number.MIN_VALUE);\n// => 0\n\n_.toInteger(Infinity);\n// => 1.7976931348623157e+308\n\n_.toInteger('3');\n// => 3\n
      \n
      \n
      \n\n
      " } + "html":"

      toInteger source npm

      \n
      _.toInteger(value)
      \n\n

      转换 value 为整数\n
      \n
      \n注意: 这个函数参考 ToInteger.

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要转换的值

        \n
      2. \n
      \n

      返回值 (number)

      \n

      返回转换后的整数

      \n
      \n

      示例

      \n
      _.toInteger(3);\n// => 3\n\n_.toInteger(Number.MIN_VALUE);\n// => 0\n\n_.toInteger(Infinity);\n// => 1.7976931348623157e+308\n\n_.toInteger('3');\n// => 3\n
      \n
      \n
      \n\n
      " } ,{ "href":"/toLength", - "html":"

      toLength source npm

      \n
      _.toLength(value)
      \n\n

      转换 value 为用作类数组对象的长度整数。\n
      \n
      \n注意: 这个方法基于 ToLength.

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要转换的值

        \n
      2. \n
      \n

      返回值 (number)

      \n

      返回转换后的整数

      \n
      \n

      示例

      \n
      _.toLength(3);\n// => 3\n\n_.toLength(Number.MIN_VALUE);\n// => 0\n\n_.toLength(Infinity);\n// => 4294967295\n\n_.toLength('3');\n// => 3\n
      \n
      \n
      \n\n
      " } + "html":"

      toLength source npm

      \n
      _.toLength(value)
      \n\n

      转换 value 为用作类数组对象的长度整数。\n
      \n
      \n注意: 这个方法基于 ToLength.

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要转换的值

        \n
      2. \n
      \n

      返回值 (number)

      \n

      返回转换后的整数

      \n
      \n

      示例

      \n
      _.toLength(3);\n// => 3\n\n_.toLength(Number.MIN_VALUE);\n// => 0\n\n_.toLength(Infinity);\n// => 4294967295\n\n_.toLength('3');\n// => 3\n
      \n
      \n
      \n\n
      " } ,{ "href":"/toNumber", - "html":"

      toNumber source npm

      \n
      _.toNumber(value)
      \n\n

      转换 value 为数值

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要处理的值

        \n
      2. \n
      \n

      返回值 (number)

      \n

      返回数值

      \n
      \n

      示例

      \n
      _.toNumber(3);\n// => 3\n\n_.toNumber(Number.MIN_VALUE);\n// => 5e-324\n\n_.toNumber(Infinity);\n// => Infinity\n\n_.toNumber('3');\n// => 3\n
      \n
      \n
      \n\n
      " } + "html":"

      toNumber source npm

      \n
      _.toNumber(value)
      \n\n

      转换 value 为数值

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要处理的值

        \n
      2. \n
      \n

      返回值 (number)

      \n

      返回数值

      \n
      \n

      示例

      \n
      _.toNumber(3);\n// => 3\n\n_.toNumber(Number.MIN_VALUE);\n// => 5e-324\n\n_.toNumber(Infinity);\n// => Infinity\n\n_.toNumber('3');\n// => 3\n
      \n
      \n
      \n\n
      " } ,{ "href":"/toPlainObject", - "html":"

      toPlainObject source npm

      \n
      _.toPlainObject(value)
      \n\n

      转换 value 为普通对象。\n包括继承的可枚举属性。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要转换的值

        \n
      2. \n
      \n

      返回值 (Object)

      \n

      返回转换后的普通对象

      \n
      \n

      示例

      \n
      function Foo() {\n  this.b = 2;\n}\n\nFoo.prototype.c = 3;\n\n_.assign({ 'a': 1 }, new Foo);\n// => { 'a': 1, 'b': 2 }\n\n_.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n// => { 'a': 1, 'b': 2, 'c': 3 }\n
      \n
      \n
      \n\n
      " } + "html":"

      toPlainObject source npm

      \n
      _.toPlainObject(value)
      \n\n

      转换 value 为普通对象。\n包括继承的可枚举属性。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要转换的值

        \n
      2. \n
      \n

      返回值 (Object)

      \n

      返回转换后的普通对象

      \n
      \n

      示例

      \n
      function Foo() {\n  this.b = 2;\n}\n\nFoo.prototype.c = 3;\n\n_.assign({ 'a': 1 }, new Foo);\n// => { 'a': 1, 'b': 2 }\n\n_.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n// => { 'a': 1, 'b': 2, 'c': 3 }\n
      \n
      \n
      \n\n
      " } ,{ "href":"/toSafeInteger", - "html":"

      toSafeInteger source npm

      \n
      _.toSafeInteger(value)
      \n\n

      转换 value 为安全整数。\n安全整数可以用于比较和准确的表示。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要转换的值

        \n
      2. \n
      \n

      返回值 (number)

      \n

      返回转换后的整数

      \n
      \n

      示例

      \n
      _.toSafeInteger(3);\n// => 3\n\n_.toSafeInteger(Number.MIN_VALUE);\n// => 0\n\n_.toSafeInteger(Infinity);\n// => 9007199254740991\n\n_.toSafeInteger('3');\n// => 3\n
      \n
      \n
      \n\n
      " } + "html":"

      toSafeInteger source npm

      \n
      _.toSafeInteger(value)
      \n\n

      转换 value 为安全整数。\n安全整数可以用于比较和准确的表示。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要转换的值

        \n
      2. \n
      \n

      返回值 (number)

      \n

      返回转换后的整数

      \n
      \n

      示例

      \n
      _.toSafeInteger(3);\n// => 3\n\n_.toSafeInteger(Number.MIN_VALUE);\n// => 0\n\n_.toSafeInteger(Infinity);\n// => 9007199254740991\n\n_.toSafeInteger('3');\n// => 3\n
      \n
      \n
      \n\n
      " } ,{ "href":"/toString", - "html":"

      toString source npm

      \n
      _.toString(value)
      \n\n

      如果 value 不是字符串,将其转换为字符串。\nnullundefined 将返回空字符串。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要转换的值

        \n
      2. \n
      \n

      返回值 (string)

      \n

      返回字符串

      \n
      \n

      示例

      \n
      _.toString(null);\n// => ''\n\n_.toString(-0);\n// => '-0'\n\n_.toString([1, 2, 3]);\n// => '1,2,3'\n
      \n
      \n
      \n\n
      " } + "html":"

      toString source npm

      \n
      _.toString(value)
      \n\n

      如果 value 不是字符串,将其转换为字符串。\nnullundefined 将返回空字符串。

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要转换的值

        \n
      2. \n
      \n

      返回值 (string)

      \n

      返回字符串

      \n
      \n

      示例

      \n
      _.toString(null);\n// => ''\n\n_.toString(-0);\n// => '-0'\n\n_.toString([1, 2, 3]);\n// => '1,2,3'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/add", - "html":"

      add source npm

      \n
      _.add(augend, addend)
      \n\n

      相加两个数

      \n
      \n\n

      参数

      \n
        \n
      1. augend (number)

        相加的第一个数

        \n
      2. \n
      3. addend (number)

        相加的第二个数

        \n
      4. \n
      \n

      返回值 (number)

      \n

      返回总和

      \n
      \n

      示例

      \n
      _.add(6, 4);\n// => 10\n
      \n
      \n
      \n\n
      " } + "html":"

      add source npm

      \n
      _.add(augend, addend)
      \n\n

      相加两个数

      \n
      \n\n

      参数

      \n
        \n
      1. augend (number)

        相加的第一个数

        \n
      2. \n
      3. addend (number)

        相加的第二个数

        \n
      4. \n
      \n

      返回值 (number)

      \n

      返回总和

      \n
      \n

      示例

      \n
      _.add(6, 4);\n// => 10\n
      \n
      \n
      \n\n
      " } ,{ "href":"/ceil", - "html":"

      ceil source npm

      \n
      _.ceil(number, [precision=0])
      \n\n

      根据 precision 向上舍入 number

      \n
      \n\n

      参数

      \n
        \n
      1. number (number)

        要向上舍入的值

        \n
      2. \n
      3. [precision=0] (number)

        精度

        \n
      4. \n
      \n

      返回值 (number)

      \n

      返回向上舍入的结果

      \n
      \n

      示例

      \n
      _.ceil(4.006);\n// => 5\n\n_.ceil(6.004, 2);\n// => 6.01\n\n_.ceil(6040, -2);\n// => 6100\n
      \n
      \n
      \n\n
      " } + "html":"

      ceil source npm

      \n
      _.ceil(number, [precision=0])
      \n\n

      根据 precision 向上舍入 number

      \n
      \n\n

      参数

      \n
        \n
      1. number (number)

        要向上舍入的值

        \n
      2. \n
      3. [precision=0] (number)

        精度

        \n
      4. \n
      \n

      返回值 (number)

      \n

      返回向上舍入的结果

      \n
      \n

      示例

      \n
      _.ceil(4.006);\n// => 5\n\n_.ceil(6.004, 2);\n// => 6.01\n\n_.ceil(6040, -2);\n// => 6100\n
      \n
      \n
      \n\n
      " } ,{ "href":"/floor", - "html":"

      floor source npm

      \n
      _.floor(number, [precision=0])
      \n\n

      根据 precision 向下保留 number

      \n
      \n\n

      参数

      \n
        \n
      1. number (number)

        要向下保留的数

        \n
      2. \n
      3. [precision=0] (number)

        精度

        \n
      4. \n
      \n

      返回值 (number)

      \n

      返回向下保留的结果

      \n
      \n

      示例

      \n
      _.floor(4.006);\n// => 4\n\n_.floor(0.046, 2);\n// => 0.04\n\n_.floor(4060, -2);\n// => 4000\n
      \n
      \n
      \n\n
      " } + "html":"

      floor source npm

      \n
      _.floor(number, [precision=0])
      \n\n

      根据 precision 向下保留 number

      \n
      \n\n

      参数

      \n
        \n
      1. number (number)

        要向下保留的数

        \n
      2. \n
      3. [precision=0] (number)

        精度

        \n
      4. \n
      \n

      返回值 (number)

      \n

      返回向下保留的结果

      \n
      \n

      示例

      \n
      _.floor(4.006);\n// => 4\n\n_.floor(0.046, 2);\n// => 0.04\n\n_.floor(4060, -2);\n// => 4000\n
      \n
      \n
      \n\n
      " } ,{ "href":"/max", - "html":"

      max source npm

      \n
      _.max(array)
      \n\n

      计算 array 中最大的值。\n如果 array 是 空的或者假值将会返回 undefined。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        要计算的数组

        \n
      2. \n
      \n

      返回值 (*)

      \n

      返回最大的值

      \n
      \n

      示例

      \n
      _.max([4, 2, 8, 6]);\n// => 8\n\n_.max([]);\n// => undefined\n
      \n
      \n
      \n\n
      " } + "html":"

      max source npm

      \n
      _.max(array)
      \n\n

      计算 array 中最大的值。\n如果 array 是 空的或者假值将会返回 undefined。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        要计算的数组

        \n
      2. \n
      \n

      返回值 (*)

      \n

      返回最大的值

      \n
      \n

      示例

      \n
      _.max([4, 2, 8, 6]);\n// => 8\n\n_.max([]);\n// => undefined\n
      \n
      \n
      \n\n
      " } ,{ "href":"/maxBy", - "html":"

      maxBy source npm

      \n
      _.maxBy(array, [iteratee=_.identity])
      \n\n

      这个方法类似 _.max \n除了它接受 iteratee 调用每一个元素,根据返回的 value 决定排序准则。 \niteratee 会传入1个参数:(value)。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        要遍历的数组

        \n
      2. \n
      3. [iteratee=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (*)

      \n

      返回最大值

      \n
      \n

      示例

      \n
      var users = [\n  { 'user': 'barney', 'age': 36 },\n  { 'user': 'fred',   'age': 40 }\n];\n\n_.maxBy(users, function(o) { return o.age; });\n// => { 'user': 'fred', 'age': 40 }\n\n// 使用了 `_.property` 的回调结果\n_.maxBy(users, 'age');\n// => { 'user': 'fred', 'age': 40 }\n
      \n
      \n
      \n\n
      " } + "html":"

      maxBy source npm

      \n
      _.maxBy(array, [iteratee=_.identity])
      \n\n

      这个方法类似 _.max\n除了它接受 iteratee 调用每一个元素,根据返回的 value 决定排序准则。\niteratee 会传入1个参数:(value)。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        要遍历的数组

        \n
      2. \n
      3. [iteratee=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (*)

      \n

      返回最大值

      \n
      \n

      示例

      \n
      var objects = [{ 'n': 1 }, { 'n': 2 }];\n\n_.maxBy(objects, function(o) { return o.n; });\n// => { 'n': 2 }\n\n// 使用了 `_.property` iteratee 的回调结果\n_.maxBy(objects, 'n');\n// => { 'n': 2 }\n
      \n
      \n
      \n\n
      " } ,{ "href":"/mean", - "html":"

      mean source npm

      \n
      _.mean(array)
      \n\n

      计算 array 的平均值。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        要遍历的数组

        \n
      2. \n
      \n

      返回值 (number)

      \n

      返回平均值

      \n
      \n

      示例

      \n
      _.mean([4, 2, 8, 6]);\n// => 5\n
      \n
      \n
      \n\n
      " } + "html":"

      mean source npm

      \n
      _.mean(array)
      \n\n

      计算 array 的平均值。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        要遍历的数组

        \n
      2. \n
      \n

      返回值 (number)

      \n

      返回平均值

      \n
      \n

      示例

      \n
      _.mean([4, 2, 8, 6]);\n// => 5\n
      \n
      \n
      \n\n
      " } ,{ "href":"/min", - "html":"

      min source npm

      \n
      _.min(array)
      \n\n

      计算 array 中最小的值。 如果 array 是 空的或者假值将会返回 undefined。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        要计算的数组

        \n
      2. \n
      \n

      返回值 (*)

      \n

      返回最小值

      \n
      \n

      示例

      \n
      _.min([4, 2, 8, 6]);\n// => 2\n\n_.min([]);\n// => undefined\n
      \n
      \n
      \n\n
      " } + "html":"

      min source npm

      \n
      _.min(array)
      \n\n

      计算 array 中最小的值。 如果 array 是 空的或者假值将会返回 undefined。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        要计算的数组

        \n
      2. \n
      \n

      返回值 (*)

      \n

      返回最小值

      \n
      \n

      示例

      \n
      _.min([4, 2, 8, 6]);\n// => 2\n\n_.min([]);\n// => undefined\n
      \n
      \n
      \n\n
      " } ,{ "href":"/minBy", - "html":"

      minBy source npm

      \n
      _.minBy(array, [iteratee=_.identity])
      \n\n

      这个方法类似 _.min。\n除了它接受 iteratee 调用每一个元素,根据返回的 value 决定排序准则。 iteratee 会传入1个参数:(value)。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        要遍历的数组

        \n
      2. \n
      3. [iteratee=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (*)

      \n

      返回最小值

      \n
      \n

      示例

      \n
      var users = [\n  { 'user': 'barney', 'age': 36 },\n  { 'user': 'fred',   'age': 40 }\n];\n\n_.minBy(users, function(o) { return o.age; });\n// => { 'user': 'barney', 'age': 36 }\n\n// 使用了 `_.property` 的回调结果\n_.minBy(users, 'age');\n// => { 'user': 'barney', 'age': 36 }\n
      \n
      \n
      \n\n
      " } + "html":"

      minBy source npm

      \n
      _.minBy(array, [iteratee=_.identity])
      \n\n

      这个方法类似 _.min。\n除了它接受 iteratee 调用每一个元素,根据返回的 value 决定排序准则。 iteratee 会传入1个参数:(value)。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        要遍历的数组

        \n
      2. \n
      3. [iteratee=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (*)

      \n

      返回最小值

      \n
      \n

      示例

      \n
      var objects = [{ 'n': 1 }, { 'n': 2 }];\n\n_.minBy(objects, function(o) { return o.n; });\n// => { 'n': 1 }\n\n// 使用了 `_.property` iteratee 的回调结果\n_.minBy(objects, 'n');\n// => { 'n': 1 }\n
      \n
      \n
      \n\n
      " } ,{ "href":"/round", - "html":"

      round source npm

      \n
      _.round(number, [precision=0])
      \n\n

      根据 precision 四舍五入 number。

      \n
      \n\n

      参数

      \n
        \n
      1. number (number)

        要四舍五入的值

        \n
      2. \n
      3. [precision=0] (number)

        精度

        \n
      4. \n
      \n

      返回值 (number)

      \n

      返回四舍五入的结果

      \n
      \n

      示例

      \n
      _.round(4.006);\n// => 4\n\n_.round(4.006, 2);\n// => 4.01\n\n_.round(4060, -2);\n// => 4100\n
      \n
      \n
      \n\n
      " } + "html":"

      round source npm

      \n
      _.round(number, [precision=0])
      \n\n

      根据 precision 四舍五入 number。

      \n
      \n\n

      参数

      \n
        \n
      1. number (number)

        要四舍五入的值

        \n
      2. \n
      3. [precision=0] (number)

        精度

        \n
      4. \n
      \n

      返回值 (number)

      \n

      返回四舍五入的结果

      \n
      \n

      示例

      \n
      _.round(4.006);\n// => 4\n\n_.round(4.006, 2);\n// => 4.01\n\n_.round(4060, -2);\n// => 4100\n
      \n
      \n
      \n\n
      " } ,{ "href":"/subtract", - "html":"

      subtract source npm

      \n
      _.subtract(minuend, subtrahend)
      \n\n

      两双相减

      \n
      \n\n

      参数

      \n
        \n
      1. minuend (number)

        相减的第一个数

        \n
      2. \n
      3. subtrahend (number)

        相减的第二个数

        \n
      4. \n
      \n

      返回值 (number)

      \n

      返回结果

      \n
      \n

      示例

      \n
      _.subtract(6, 4);\n// => 2\n
      \n
      \n
      \n\n
      " } + "html":"

      subtract source npm

      \n
      _.subtract(minuend, subtrahend)
      \n\n

      两双相减

      \n
      \n\n

      参数

      \n
        \n
      1. minuend (number)

        相减的第一个数

        \n
      2. \n
      3. subtrahend (number)

        相减的第二个数

        \n
      4. \n
      \n

      返回值 (number)

      \n

      返回结果

      \n
      \n

      示例

      \n
      _.subtract(6, 4);\n// => 2\n
      \n
      \n
      \n\n
      " } ,{ "href":"/sum", - "html":"

      sum source npm

      \n
      _.sum(array)
      \n\n

      计算 array 中值的总和

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        要遍历的数组

        \n
      2. \n
      \n

      返回值 (number)

      \n

      返回总和

      \n
      \n

      示例

      \n
      _.sum([4, 2, 8, 6]);\n// => 20\n
      \n
      \n
      \n\n
      " } + "html":"

      sum source npm

      \n
      _.sum(array)
      \n\n

      计算 array 中值的总和

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        要遍历的数组

        \n
      2. \n
      \n

      返回值 (number)

      \n

      返回总和

      \n
      \n

      示例

      \n
      _.sum([4, 2, 8, 6]);\n// => 20\n
      \n
      \n
      \n\n
      " } ,{ "href":"/sumBy", - "html":"

      sumBy source npm

      \n
      _.sumBy(array, [iteratee=_.identity])
      \n\n

      这个方法类似 _.sum。\n除了它接受 iteratee 调用每一个元素,根据返回的 value 决定如何计算。 \niteratee 会传入1个参数:(value)。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        要遍历的数组

        \n
      2. \n
      3. [iteratee=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (number)

      \n

      返回总和

      \n
      \n

      示例

      \n
      var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];\n\n_.sumBy(objects, function(o) { return o.n; });\n// => 20\n\n// 使用了 `_.property` 的回调结果\n_.sumBy(objects, 'n');\n// => 20\n
      \n
      \n
      \n\n
      " } -,{ "href":"/stringSize", - "html":"

      stringSize source

      \n
      stringSize(string)
      \n\n

      获得字符串的长度

      \n
      \n\n

      参数

      \n
        \n
      1. string (string)

        要处理的字符串

        \n
      2. \n
      \n

      返回值 (number)

      \n

      返回字符串长度

      \n
      \n
      \n\n
      " } + "html":"

      sumBy source npm

      \n
      _.sumBy(array, [iteratee=_.identity])
      \n\n

      这个方法类似 _.sum。\n除了它接受 iteratee 调用每一个元素,根据返回的 value 决定如何计算。\niteratee 会传入1个参数:(value)。

      \n
      \n\n

      参数

      \n
        \n
      1. array (Array)

        要遍历的数组

        \n
      2. \n
      3. [iteratee=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (number)

      \n

      返回总和

      \n
      \n

      示例

      \n
      var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];\n\n_.sumBy(objects, function(o) { return o.n; });\n// => 20\n\n// 使用了 `_.property` 的回调结果\n_.sumBy(objects, 'n');\n// => 20\n
      \n
      \n
      \n\n
      " } ,{ "href":"/templateSettings-imports-_", - "html":"

      templateSettings.imports._ source

      \n
      _.templateSettings.imports._
      \n\n

      lodash 函数的引用

      \n
      \n\n
      \n\n
      " } + "html":"

      templateSettings.imports._ source

      \n
      _.templateSettings.imports._
      \n\n

      lodash 函数的引用

      \n
      \n\n
      \n\n
      " } ,{ "href":"/clamp", - "html":"

      clamp source npm

      \n
      _.clamp(number, [min], max)
      \n\n

      返回限制在 minmax 之间的值

      \n
      \n\n

      参数

      \n
        \n
      1. number (number)

        被限制的值

        \n
      2. \n
      3. [min] (number)

        最小绝对值

        \n
      4. \n
      5. max (number)

        最大绝对值

        \n
      6. \n
      \n

      返回值 (number)

      \n

      [min, max] 中的一个

      \n
      \n

      示例

      \n
      _.clamp(-10, -5, 5);\n// => -5\n\n_.clamp(10, -5, 5);\n// => 5\n
      \n
      \n
      \n\n
      " } + "html":"

      clamp source npm

      \n
      _.clamp(number, [min], max)
      \n\n

      返回限制在 minmax 之间的值

      \n
      \n\n

      参数

      \n
        \n
      1. number (number)

        被限制的值

        \n
      2. \n
      3. [min] (number)

        最小绝对值

        \n
      4. \n
      5. max (number)

        最大绝对值

        \n
      6. \n
      \n

      返回值 (number)

      \n

      [min, max] 中的一个

      \n
      \n

      示例

      \n
      _.clamp(-10, -5, 5);\n// => -5\n\n_.clamp(10, -5, 5);\n// => 5\n
      \n
      \n
      \n\n
      " } ,{ "href":"/inRange", - "html":"

      inRange source npm

      \n
      _.inRange(number, [start=0], end)
      \n\n

      检查 n 是否在 startend 之间,但不包括 end。\n如果 end 没有指定,那么 start 设置为0。\n如果 start 大于 end,那么参数会交换以便支持负范围。

      \n
      \n\n

      参数

      \n
        \n
      1. number (number)

        要检查的值

        \n
      2. \n
      3. [start=0] (number)

        开始范围

        \n
      4. \n
      5. end (number)

        结束范围

        \n
      6. \n
      \n

      返回值 (boolean)

      \n

      如果值在范围内返回true,否则返回 false

      \n
      \n

      示例

      \n
      _.inRange(3, 2, 4);\n// => true\n\n_.inRange(4, 8);\n// => true\n\n_.inRange(4, 2);\n// => false\n\n_.inRange(2, 2);\n// => false\n\n_.inRange(1.2, 2);\n// => true\n\n_.inRange(5.2, 4);\n// => false\n\n_.inRange(-3, -2, -6);\n// => true\n
      \n
      \n
      \n\n
      " } + "html":"

      inRange source npm

      \n
      _.inRange(number, [start=0], end)
      \n\n

      检查 n 是否在 startend 之间,但不包括 end。\n如果 end 没有指定,那么 start 设置为0。\n如果 start 大于 end,那么参数会交换以便支持负范围。

      \n
      \n\n

      参数

      \n
        \n
      1. number (number)

        要检查的值

        \n
      2. \n
      3. [start=0] (number)

        开始范围

        \n
      4. \n
      5. end (number)

        结束范围

        \n
      6. \n
      \n

      返回值 (boolean)

      \n

      如果值在范围内返回true,否则返回 false

      \n
      \n

      示例

      \n
      _.inRange(3, 2, 4);\n// => true\n\n_.inRange(4, 8);\n// => true\n\n_.inRange(4, 2);\n// => false\n\n_.inRange(2, 2);\n// => false\n\n_.inRange(1.2, 2);\n// => true\n\n_.inRange(5.2, 4);\n// => false\n\n_.inRange(-3, -2, -6);\n// => true\n
      \n
      \n
      \n\n
      " } ,{ "href":"/random", - "html":"

      random source npm

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

      产生一个包括 minmax 之间的数。\n如果只提供一个参数返回一个0到提供数之间的数。\n如果 floating 设为 true,或者 minmax 是浮点数,结果返回浮点数。\n
      \n
      \n注意: JavaScript 遵循 IEEE-754 标准处理无法预料的浮点数结果。

      \n
      \n\n

      参数

      \n
        \n
      1. [min=0] (number)

        最小值

        \n
      2. \n
      3. [max=1] (number)

        最大值

        \n
      4. \n
      5. [floating] (boolean)

        是否返回浮点数

        \n
      6. \n
      \n

      返回值 (number)

      \n

      返回随机数

      \n
      \n

      示例

      \n
      _.random(0, 5);\n// =>  0 和 5 之间的数\n\n_.random(5);\n// => 同样是 0 和 5 之间的数\n\n_.random(5, true);\n// => 0 和 5 之间的浮点数\n\n_.random(1.2, 5.2);\n// =>  1.2 和 5.2 之间的浮点数\n
      \n
      \n
      \n\n
      " } + "html":"

      random source npm

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

      产生一个包括 minmax 之间的数。\n如果只提供一个参数返回一个0到提供数之间的数。\n如果 floating 设为 true,或者 minmax 是浮点数,结果返回浮点数。\n
      \n
      \n注意: JavaScript 遵循 IEEE-754 标准处理无法预料的浮点数结果。

      \n
      \n\n

      参数

      \n
        \n
      1. [min=0] (number)

        最小值

        \n
      2. \n
      3. [max=1] (number)

        最大值

        \n
      4. \n
      5. [floating] (boolean)

        是否返回浮点数

        \n
      6. \n
      \n

      返回值 (number)

      \n

      返回随机数

      \n
      \n

      示例

      \n
      _.random(0, 5);\n// =>  0 和 5 之间的数\n\n_.random(5);\n// => 同样是 0 和 5 之间的数\n\n_.random(5, true);\n// => 0 和 5 之间的浮点数\n\n_.random(1.2, 5.2);\n// =>  1.2 和 5.2 之间的浮点数\n
      \n
      \n
      \n\n
      " } ,{ "href":"/assign", - "html":"

      assign source npm

      \n
      _.assign(object, [sources])
      \n\n

      分配来源对象的可枚举属性到目标对象上。\n来源对象的应用规则是从左到右,随后的下一个对象的属性会覆盖上一个对象的属性。\n
      \n
      \n注意: 这方法会改变源对象,参考自\nObject.assign.

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        目标对象

        \n
      2. \n
      3. [sources] (...Object)

        来源对象

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回对象

      \n
      \n

      示例

      \n
      function Foo() {\n  this.c = 3;\n}\n\nfunction Bar() {\n  this.e = 5;\n}\n\nFoo.prototype.d = 4;\nBar.prototype.f = 6;\n\n_.assign({ 'a': 1 }, new Foo, new Bar);\n// => { 'a': 1, 'c': 3, 'e': 5 }\n
      \n
      \n
      \n\n
      " } + "html":"

      assign source npm

      \n
      _.assign(object, [sources])
      \n\n

      分配来源对象的可枚举属性到目标对象上。\n来源对象的应用规则是从左到右,随后的下一个对象的属性会覆盖上一个对象的属性。\n
      \n
      \n注意: 这方法会改变源对象,参考自\nObject.assign.

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        目标对象

        \n
      2. \n
      3. [sources] (...Object)

        来源对象

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回对象

      \n
      \n

      示例

      \n
      function Foo() {\n  this.c = 3;\n}\n\nfunction Bar() {\n  this.e = 5;\n}\n\nFoo.prototype.d = 4;\nBar.prototype.f = 6;\n\n_.assign({ 'a': 1 }, new Foo, new Bar);\n// => { 'a': 1, 'c': 3, 'e': 5 }\n
      \n
      \n
      \n\n
      " } ,{ "href":"/assignIn", - "html":"

      assignIn extend source npm

      \n
      _.assignIn(object, [sources])
      \n\n

      这个方法类似 _.assign。\n除了它会遍历并继承来源对象的属性。\n
      \n
      \n注意: 这方法会改变源对象

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        目标对象

        \n
      2. \n
      3. [sources] (...Object)

        来源对象

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回对象

      \n
      \n

      示例

      \n
      function Foo() {\n  this.b = 2;\n}\n\nfunction Bar() {\n  this.d = 4;\n}\n\nFoo.prototype.c = 3;\nBar.prototype.e = 5;\n\n_.assignIn({ 'a': 1 }, new Foo, new Bar);\n// => { 'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5 }\n
      \n
      \n
      \n\n
      " } + "html":"

      assignIn extend source npm

      \n
      _.assignIn(object, [sources])
      \n\n

      这个方法类似 _.assign。\n除了它会遍历并继承来源对象的属性。\n
      \n
      \n注意: 这方法会改变源对象

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        目标对象

        \n
      2. \n
      3. [sources] (...Object)

        来源对象

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回对象

      \n
      \n

      示例

      \n
      function Foo() {\n  this.b = 2;\n}\n\nfunction Bar() {\n  this.d = 4;\n}\n\nFoo.prototype.c = 3;\nBar.prototype.e = 5;\n\n_.assignIn({ 'a': 1 }, new Foo, new Bar);\n// => { 'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5 }\n
      \n
      \n
      \n\n
      " } ,{ "href":"/assignInWith", - "html":"

      assignInWith extendWith source npm

      \n
      _.assignInWith(object, sources, [customizer])
      \n\n

      这个方法类似 _.assignIn。\n除了它接受一个 customizer决定如何分配值。\n如果customizer返回undefined将会由分配处理方法代替。customizer` 会传入5个参数:(objValue, srcValue, key, object, source)。\n
      \n
      \n注意: 这方法会改变源对象

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        目标对象

        \n
      2. \n
      3. sources (...Object)

        来源对象

        \n
      4. \n
      5. [customizer] (Function)

        这个函数决定分配的值

        \n
      6. \n
      \n

      返回值 (Object)

      \n

      返回对象

      \n
      \n

      示例

      \n
      function customizer(objValue, srcValue) {\n  return _.isUndefined(objValue) ? srcValue : objValue;\n}\n\nvar defaults = _.partialRight(_.assignInWith, customizer);\n\ndefaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n// => { 'a': 1, 'b': 2 }\n
      \n
      \n
      \n\n
      " } + "html":"

      assignInWith extendWith source npm

      \n
      _.assignInWith(object, sources, [customizer])
      \n\n

      这个方法类似 _.assignIn。\n除了它接受一个 customizer决定如何分配值。\n如果customizer返回undefined将会由分配处理方法代替。customizer` 会传入5个参数:(objValue, srcValue, key, object, source)。\n
      \n
      \n注意: 这方法会改变源对象

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        目标对象

        \n
      2. \n
      3. sources (...Object)

        来源对象

        \n
      4. \n
      5. [customizer] (Function)

        这个函数决定分配的值

        \n
      6. \n
      \n

      返回值 (Object)

      \n

      返回对象

      \n
      \n

      示例

      \n
      function customizer(objValue, srcValue) {\n  return _.isUndefined(objValue) ? srcValue : objValue;\n}\n\nvar defaults = _.partialRight(_.assignInWith, customizer);\n\ndefaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n// => { 'a': 1, 'b': 2 }\n
      \n
      \n
      \n\n
      " } ,{ "href":"/assignWith", - "html":"

      assignWith source npm

      \n
      _.assignWith(object, sources, [customizer])
      \n\n

      这个方法类似 _.assign。\n除了它接受一个 customizer决定如何分配值。\n如果customizer返回undefined将会由分配处理方法代替。customizer` 会传入5个参数:(objValue, srcValue, key, object, source)。\n
      \n
      \n注意: 这方法会改变源对象

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        目标对象

        \n
      2. \n
      3. sources (...Object)

        来源对象

        \n
      4. \n
      5. [customizer] (Function)

        这个函数决定分配的值

        \n
      6. \n
      \n

      返回值 (Object)

      \n

      返回对象

      \n
      \n

      示例

      \n
      function customizer(objValue, srcValue) {\n  return _.isUndefined(objValue) ? srcValue : objValue;\n}\n\nvar defaults = _.partialRight(_.assignWith, customizer);\n\ndefaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n// => { 'a': 1, 'b': 2 }\n
      \n
      \n
      \n\n
      " } + "html":"

      assignWith source npm

      \n
      _.assignWith(object, sources, [customizer])
      \n\n

      这个方法类似 _.assign。\n除了它接受一个 customizer决定如何分配值。\n如果customizer返回undefined将会由分配处理方法代替。customizer` 会传入5个参数:(objValue, srcValue, key, object, source)。\n
      \n
      \n注意: 这方法会改变源对象

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        目标对象

        \n
      2. \n
      3. sources (...Object)

        来源对象

        \n
      4. \n
      5. [customizer] (Function)

        这个函数决定分配的值

        \n
      6. \n
      \n

      返回值 (Object)

      \n

      返回对象

      \n
      \n

      示例

      \n
      function customizer(objValue, srcValue) {\n  return _.isUndefined(objValue) ? srcValue : objValue;\n}\n\nvar defaults = _.partialRight(_.assignWith, customizer);\n\ndefaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n// => { 'a': 1, 'b': 2 }\n
      \n
      \n
      \n\n
      " } ,{ "href":"/at", - "html":"

      at source npm

      \n
      _.at(object, [paths])
      \n\n

      根据 object 的路径获取值为数组。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要遍历的对象

        \n
      2. \n
      3. [paths] (...(string|string[])

        要获取的对象的元素路径,单独指定或者指定在数组中

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回选中值的数组

      \n
      \n

      示例

      \n
      var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n\n_.at(object, ['a[0].b.c', 'a[1]']);\n// => [3, 4]\n\n_.at(['a', 'b', 'c'], 0, 2);\n// => ['a', 'c']\n
      \n
      \n
      \n\n
      " } + "html":"

      at source npm

      \n
      _.at(object, [paths])
      \n\n

      根据 object 的路径获取值为数组。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要遍历的对象

        \n
      2. \n
      3. [paths] (...(string|string[])

        要获取的对象的元素路径,单独指定或者指定在数组中

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回选中值的数组

      \n
      \n

      示例

      \n
      var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n\n_.at(object, ['a[0].b.c', 'a[1]']);\n// => [3, 4]\n\n_.at(['a', 'b', 'c'], 0, 2);\n// => ['a', 'c']\n
      \n
      \n
      \n\n
      " } ,{ "href":"/create", - "html":"

      create source npm

      \n
      _.create(prototype, [properties])
      \n\n

      创建一个继承 prototype 的对象。\n如果提供了 properties,它的可枚举属性会被分配到创建的对象上。

      \n
      \n\n

      参数

      \n
        \n
      1. prototype (Object)

        要继承的对象

        \n
      2. \n
      3. [properties] (Object)

        待分配的属性

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回新对象

      \n
      \n

      示例

      \n
      function Shape() {\n  this.x = 0;\n  this.y = 0;\n}\n\nfunction Circle() {\n  Shape.call(this);\n}\n\nCircle.prototype = _.create(Shape.prototype, {\n  'constructor': Circle\n});\n\nvar circle = new Circle;\ncircle instanceof Circle;\n// => true\n\ncircle instanceof Shape;\n// => true\n
      \n
      \n
      \n\n
      " } + "html":"

      create source npm

      \n
      _.create(prototype, [properties])
      \n\n

      创建一个继承 prototype 的对象。\n如果提供了 properties,它的可枚举属性会被分配到创建的对象上。

      \n
      \n\n

      参数

      \n
        \n
      1. prototype (Object)

        要继承的对象

        \n
      2. \n
      3. [properties] (Object)

        待分配的属性

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回新对象

      \n
      \n

      示例

      \n
      function Shape() {\n  this.x = 0;\n  this.y = 0;\n}\n\nfunction Circle() {\n  Shape.call(this);\n}\n\nCircle.prototype = _.create(Shape.prototype, {\n  'constructor': Circle\n});\n\nvar circle = new Circle;\ncircle instanceof Circle;\n// => true\n\ncircle instanceof Shape;\n// => true\n
      \n
      \n
      \n\n
      " } ,{ "href":"/defaults", - "html":"

      defaults source npm

      \n
      _.defaults(object, [sources])
      \n\n

      分配来源对象的可枚举属性到目标对象所有解析为 undefined 的属性上。\n来源对象从左到右应用。\n一旦设置了相同属性的值,后续的将被忽略掉。\n
      \n
      \n注意: 这方法会改变源对象

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        目标对象

        \n
      2. \n
      3. [sources] (...Object)

        来源对象

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回对象

      \n
      \n

      示例

      \n
      _.defaults({ 'user': 'barney' }, { 'age': 36 }, { 'user': 'fred' });\n// => { 'user': 'barney', 'age': 36 }\n
      \n
      \n
      \n\n
      " } + "html":"

      defaults source npm

      \n
      _.defaults(object, [sources])
      \n\n

      分配来源对象的可枚举属性到目标对象所有解析为 undefined 的属性上。\n来源对象从左到右应用。\n一旦设置了相同属性的值,后续的将被忽略掉。\n
      \n
      \n注意: 这方法会改变源对象

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        目标对象

        \n
      2. \n
      3. [sources] (...Object)

        来源对象

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回对象

      \n
      \n

      示例

      \n
      _.defaults({ 'user': 'barney' }, { 'age': 36 }, { 'user': 'fred' });\n// => { 'user': 'barney', 'age': 36 }\n
      \n
      \n
      \n\n
      " } ,{ "href":"/defaultsDeep", - "html":"

      defaultsDeep source npm

      \n
      _.defaultsDeep(object, [sources])
      \n\n

      这个方法类似 _.defaults,除了它会递归分配默认属性。\n
      \n
      \n注意: 这方法会改变源对象

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        目标对象

        \n
      2. \n
      3. [sources] (...Object)

        来源对象

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回对象

      \n
      \n

      示例

      \n
      _.defaultsDeep({ 'user': { 'name': 'barney' } }, { 'user': { 'name': 'fred', 'age': 36 } });\n// => { 'user': { 'name': 'barney', 'age': 36 } }\n
      \n
      \n
      \n\n
      " } + "html":"

      defaultsDeep source npm

      \n
      _.defaultsDeep(object, [sources])
      \n\n

      这个方法类似 _.defaults,除了它会递归分配默认属性。\n
      \n
      \n注意: 这方法会改变源对象

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        目标对象

        \n
      2. \n
      3. [sources] (...Object)

        来源对象

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回对象

      \n
      \n

      示例

      \n
      _.defaultsDeep({ 'user': { 'name': 'barney' } }, { 'user': { 'name': 'fred', 'age': 36 } });\n// => { 'user': { 'name': 'barney', 'age': 36 } }\n
      \n
      \n
      \n\n
      " } ,{ "href":"/findKey", - "html":"

      findKey source npm

      \n
      _.findKey(object, [predicate=_.identity])
      \n\n

      这个方法类似 _.find。\n除了它返回最先被 predicate 判断为真值的元素 key,而不是元素本身。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        需要检索的对象

        \n
      2. \n
      3. [predicate=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (string|undefined)

      \n

      返回匹配的 key,否则返回 undefined

      \n
      \n

      示例

      \n
      var users = {\n  'barney':  { 'age': 36, 'active': true },\n  'fred':    { 'age': 40, 'active': false },\n  'pebbles': { 'age': 1,  'active': true }\n};\n\n_.findKey(users, function(o) { return o.age < 40; });\n// => 'barney' (无法保证遍历的顺序)\n\n// 使用了 `_.matches` 的回调结果\n_.findKey(users, { 'age': 1, 'active': true });\n// => 'pebbles'\n\n// 使用了 `_.matchesProperty` 的回调结果\n_.findKey(users, ['active', false]);\n// => 'fred'\n\n// 使用了 `_.property` 的回调结果\n_.findKey(users, 'active');\n// => 'barney'\n
      \n
      \n
      \n\n
      " } + "html":"

      findKey source npm

      \n
      _.findKey(object, [predicate=_.identity])
      \n\n

      这个方法类似 _.find。\n除了它返回最先被 predicate 判断为真值的元素 key,而不是元素本身。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        需要检索的对象

        \n
      2. \n
      3. [predicate=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (string|undefined)

      \n

      返回匹配的 key,否则返回 undefined

      \n
      \n

      示例

      \n
      var users = {\n  'barney':  { 'age': 36, 'active': true },\n  'fred':    { 'age': 40, 'active': false },\n  'pebbles': { 'age': 1,  'active': true }\n};\n\n_.findKey(users, function(o) { return o.age < 40; });\n// => 'barney' (无法保证遍历的顺序)\n\n// 使用了 `_.matches` 的回调结果\n_.findKey(users, { 'age': 1, 'active': true });\n// => 'pebbles'\n\n// 使用了 `_.matchesProperty` 的回调结果\n_.findKey(users, ['active', false]);\n// => 'fred'\n\n// 使用了 `_.property` 的回调结果\n_.findKey(users, 'active');\n// => 'barney'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/findLastKey", - "html":"

      findLastKey source npm

      \n
      _.findLastKey(object, [predicate=_.identity])
      \n\n

      这个方法类似 _.findKey。\n不过它是反方向开始遍历的。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        需要检索的对象

        \n
      2. \n
      3. [predicate=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (string|undefined)

      \n

      返回匹配的 key,否则返回 undefined

      \n
      \n

      示例

      \n
      var users = {\n  'barney':  { 'age': 36, 'active': true },\n  'fred':    { 'age': 40, 'active': false },\n  'pebbles': { 'age': 1,  'active': true }\n};\n\n_.findLastKey(users, function(o) { return o.age < 40; });\n// => 返回 'pebbles', `_.findKey` 会返回 'barney'\n\n// 使用了 `_.matches` 的回调结果\n_.findLastKey(users, { 'age': 36, 'active': true });\n// => 'barney'\n\n// 使用了 `_.matchesProperty` 的回调结果\n_.findLastKey(users, ['active', false]);\n// => 'fred'\n\n// 使用了 `_.property` 的回调结果\n_.findLastKey(users, 'active');\n// => 'pebbles'\n
      \n
      \n
      \n\n
      " } + "html":"

      findLastKey source npm

      \n
      _.findLastKey(object, [predicate=_.identity])
      \n\n

      这个方法类似 _.findKey。\n不过它是反方向开始遍历的。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        需要检索的对象

        \n
      2. \n
      3. [predicate=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (string|undefined)

      \n

      返回匹配的 key,否则返回 undefined

      \n
      \n

      示例

      \n
      var users = {\n  'barney':  { 'age': 36, 'active': true },\n  'fred':    { 'age': 40, 'active': false },\n  'pebbles': { 'age': 1,  'active': true }\n};\n\n_.findLastKey(users, function(o) { return o.age < 40; });\n// => 返回 'pebbles', `_.findKey` 会返回 'barney'\n\n// 使用了 `_.matches` 的回调结果\n_.findLastKey(users, { 'age': 36, 'active': true });\n// => 'barney'\n\n// 使用了 `_.matchesProperty` 的回调结果\n_.findLastKey(users, ['active', false]);\n// => 'fred'\n\n// 使用了 `_.property` 的回调结果\n_.findLastKey(users, 'active');\n// => 'pebbles'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/forIn", - "html":"

      forIn source npm

      \n
      _.forIn(object, [iteratee=_.identity])
      \n\n

      使用 iteratee 遍历对象的自身和继承的可枚举属性。\niteratee 会传入3个参数:(value, key, object)。\n如果返回 false,iteratee 会提前退出遍历。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要遍历的对象

        \n
      2. \n
      3. [iteratee=_.identity] (Function)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回对象

      \n
      \n

      示例

      \n
      function Foo() {\n  this.a = 1;\n  this.b = 2;\n}\n\nFoo.prototype.c = 3;\n\n_.forIn(new Foo, function(value, key) {\n  console.log(key);\n});\n// => 输出 'a', 'b', 然后 'c' (无法保证遍历的顺序)\n
      \n
      \n
      \n\n
      " } + "html":"

      forIn source npm

      \n
      _.forIn(object, [iteratee=_.identity])
      \n\n

      使用 iteratee 遍历对象的自身和继承的可枚举属性。\niteratee 会传入3个参数:(value, key, object)。\n如果返回 false,iteratee 会提前退出遍历。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要遍历的对象

        \n
      2. \n
      3. [iteratee=_.identity] (Function)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回对象

      \n
      \n

      示例

      \n
      function Foo() {\n  this.a = 1;\n  this.b = 2;\n}\n\nFoo.prototype.c = 3;\n\n_.forIn(new Foo, function(value, key) {\n  console.log(key);\n});\n// => 输出 'a', 'b', 然后 'c' (无法保证遍历的顺序)\n
      \n
      \n
      \n\n
      " } ,{ "href":"/forInRight", - "html":"

      forInRight source npm

      \n
      _.forInRight(object, [iteratee=_.identity])
      \n\n

      这个方法类似 _.forIn。\n除了它是反方向开始遍历的。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要遍历的对象

        \n
      2. \n
      3. [iteratee=_.identity] (Function)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回对象

      \n
      \n

      示例

      \n
      function Foo() {\n  this.a = 1;\n  this.b = 2;\n}\n\nFoo.prototype.c = 3;\n\n_.forInRight(new Foo, function(value, key) {\n  console.log(key);\n});\n// => 输出 'c', 'b', 然后 'a', `_.forIn` 会输出 'a', 'b', 然后 'c'\n
      \n
      \n
      \n\n
      " } + "html":"

      forInRight source npm

      \n
      _.forInRight(object, [iteratee=_.identity])
      \n\n

      这个方法类似 _.forIn。\n除了它是反方向开始遍历的。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要遍历的对象

        \n
      2. \n
      3. [iteratee=_.identity] (Function)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回对象

      \n
      \n

      示例

      \n
      function Foo() {\n  this.a = 1;\n  this.b = 2;\n}\n\nFoo.prototype.c = 3;\n\n_.forInRight(new Foo, function(value, key) {\n  console.log(key);\n});\n// => 输出 'c', 'b', 然后 'a', `_.forIn` 会输出 'a', 'b', 然后 'c'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/forOwn", - "html":"

      forOwn source npm

      \n
      _.forOwn(object, [iteratee=_.identity])
      \n\n

      使用 iteratee 遍历自身的可枚举属性。\niteratee 会传入3个参数:(value, key, object)。 如果返回 false,iteratee 会提前退出遍历。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要遍历的对象

        \n
      2. \n
      3. [iteratee=_.identity] (Function)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回对象

      \n
      \n

      示例

      \n
      function Foo() {\n  this.a = 1;\n  this.b = 2;\n}\n\nFoo.prototype.c = 3;\n\n_.forOwn(new Foo, function(value, key) {\n  console.log(key);\n});\n// => 输出 'a' 然后 'b' (无法保证遍历的顺序)\n
      \n
      \n
      \n\n
      " } + "html":"

      forOwn source npm

      \n
      _.forOwn(object, [iteratee=_.identity])
      \n\n

      使用 iteratee 遍历自身的可枚举属性。\niteratee 会传入3个参数:(value, key, object)。 如果返回 false,iteratee 会提前退出遍历。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要遍历的对象

        \n
      2. \n
      3. [iteratee=_.identity] (Function)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回对象

      \n
      \n

      示例

      \n
      function Foo() {\n  this.a = 1;\n  this.b = 2;\n}\n\nFoo.prototype.c = 3;\n\n_.forOwn(new Foo, function(value, key) {\n  console.log(key);\n});\n// => 输出 'a' 然后 'b' (无法保证遍历的顺序)\n
      \n
      \n
      \n\n
      " } ,{ "href":"/forOwnRight", - "html":"

      forOwnRight source npm

      \n
      _.forOwnRight(object, [iteratee=_.identity])
      \n\n

      这个方法类似 _.forOwn。 除了它是反方向开始遍历的。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要遍历的对象

        \n
      2. \n
      3. [iteratee=_.identity] (Function)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回对象

      \n
      \n

      示例

      \n
      function Foo() {\n  this.a = 1;\n  this.b = 2;\n}\n\nFoo.prototype.c = 3;\n\n_.forOwnRight(new Foo, function(value, key) {\n  console.log(key);\n});\n// => 输出 'b' 然后 'a', `_.forOwn` 会输出 'a' 然后 'b'\n
      \n
      \n
      \n\n
      " } + "html":"

      forOwnRight source npm

      \n
      _.forOwnRight(object, [iteratee=_.identity])
      \n\n

      这个方法类似 _.forOwn。 除了它是反方向开始遍历的。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要遍历的对象

        \n
      2. \n
      3. [iteratee=_.identity] (Function)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回对象

      \n
      \n

      示例

      \n
      function Foo() {\n  this.a = 1;\n  this.b = 2;\n}\n\nFoo.prototype.c = 3;\n\n_.forOwnRight(new Foo, function(value, key) {\n  console.log(key);\n});\n// => 输出 'b' 然后 'a', `_.forOwn` 会输出 'a' 然后 'b'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/functions", - "html":"

      functions source npm

      \n
      _.functions(object)
      \n\n

      返回一个 function 对象自身可枚举属性名的数组。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要检索的对象

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回包含属性名的新数组

      \n
      \n

      示例

      \n
      function Foo() {\n  this.a = _.constant('a');\n  this.b = _.constant('b');\n}\n\nFoo.prototype.c = _.constant('c');\n\n_.functions(new Foo);\n// => ['a', 'b']\n
      \n
      \n
      \n\n
      " } + "html":"

      functions source npm

      \n
      _.functions(object)
      \n\n

      返回一个 function 对象自身可枚举属性名的数组。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要检索的对象

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回包含属性名的新数组

      \n
      \n

      示例

      \n
      function Foo() {\n  this.a = _.constant('a');\n  this.b = _.constant('b');\n}\n\nFoo.prototype.c = _.constant('c');\n\n_.functions(new Foo);\n// => ['a', 'b']\n
      \n
      \n
      \n\n
      " } ,{ "href":"/functionsIn", - "html":"

      functionsIn source npm

      \n
      _.functionsIn(object)
      \n\n

      返回一个 function 对象自身和继承的可枚举属性名的数组。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要检索的对象

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回包含属性名的新数组

      \n
      \n

      示例

      \n
      function Foo() {\n  this.a = _.constant('a');\n  this.b = _.constant('b');\n}\n\nFoo.prototype.c = _.constant('c');\n\n_.functionsIn(new Foo);\n// => ['a', 'b', 'c']\n
      \n
      \n
      \n\n
      " } + "html":"

      functionsIn source npm

      \n
      _.functionsIn(object)
      \n\n

      返回一个 function 对象自身和继承的可枚举属性名的数组。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要检索的对象

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回包含属性名的新数组

      \n
      \n

      示例

      \n
      function Foo() {\n  this.a = _.constant('a');\n  this.b = _.constant('b');\n}\n\nFoo.prototype.c = _.constant('c');\n\n_.functionsIn(new Foo);\n// => ['a', 'b', 'c']\n
      \n
      \n
      \n\n
      " } ,{ "href":"/get", - "html":"

      get source npm

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

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

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要检索的对象

        \n
      2. \n
      3. path (Array|string)

        要获取的对象路径

        \n
      4. \n
      5. [defaultValue] (*)

        如果解析值是 undefined,这值会被返回

        \n
      6. \n
      \n

      返回值 (*)

      \n

      返回解析的值

      \n
      \n

      示例

      \n
      var object = { 'a': [{ 'b': { 'c': 3 } }] };\n\n_.get(object, 'a[0].b.c');\n// => 3\n\n_.get(object, ['a', '0', 'b', 'c']);\n// => 3\n\n_.get(object, 'a.b.c', 'default');\n// => 'default'\n
      \n
      \n
      \n\n
      " } + "html":"

      get source npm

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

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

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要检索的对象

        \n
      2. \n
      3. path (Array|string)

        要获取的对象路径

        \n
      4. \n
      5. [defaultValue] (*)

        如果解析值是 undefined,这值会被返回

        \n
      6. \n
      \n

      返回值 (*)

      \n

      返回解析的值

      \n
      \n

      示例

      \n
      var object = { 'a': [{ 'b': { 'c': 3 } }] };\n\n_.get(object, 'a[0].b.c');\n// => 3\n\n_.get(object, ['a', '0', 'b', 'c']);\n// => 3\n\n_.get(object, 'a.b.c', 'default');\n// => 'default'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/has", - "html":"

      has source npm

      \n
      _.has(object, path)
      \n\n

      检查 path 是否是对象的直接属性。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要检索的对象

        \n
      2. \n
      3. path (Array|string)

        要检查的路径

        \n
      4. \n
      \n

      返回值 (boolean)

      \n

      如果存在返回 true,否则返回 false

      \n
      \n

      示例

      \n
      var object = { 'a': { 'b': { 'c': 3 } } };\nvar other = _.create({ 'a': _.create({ 'b': _.create({ 'c': 3 }) }) });\n\n_.has(object, 'a');\n// => true\n\n_.has(object, 'a.b.c');\n// => true\n\n_.has(object, ['a', 'b', 'c']);\n// => true\n\n_.has(other, 'a');\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      has source npm

      \n
      _.has(object, path)
      \n\n

      检查 path 是否是对象的直接属性。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要检索的对象

        \n
      2. \n
      3. path (Array|string)

        要检查的路径

        \n
      4. \n
      \n

      返回值 (boolean)

      \n

      如果存在返回 true,否则返回 false

      \n
      \n

      示例

      \n
      var object = { 'a': { 'b': { 'c': 3 } } };\nvar other = _.create({ 'a': _.create({ 'b': _.create({ 'c': 3 }) }) });\n\n_.has(object, 'a');\n// => true\n\n_.has(object, 'a.b.c');\n// => true\n\n_.has(object, ['a', 'b', 'c']);\n// => true\n\n_.has(other, 'a');\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/hasIn", - "html":"

      hasIn source npm

      \n
      _.hasIn(object, path)
      \n\n

      检查 path 是否是对象的直接 或者 继承属性。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要检索的对象

        \n
      2. \n
      3. path (Array|string)

        要检查的路径

        \n
      4. \n
      \n

      返回值 (boolean)

      \n

      如果存在返回 true,否则返回 false

      \n
      \n

      示例

      \n
      var object = _.create({ 'a': _.create({ 'b': _.create({ 'c': 3 }) }) });\n\n_.hasIn(object, 'a');\n// => true\n\n_.hasIn(object, 'a.b.c');\n// => true\n\n_.hasIn(object, ['a', 'b', 'c']);\n// => true\n\n_.hasIn(object, 'b');\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      hasIn source npm

      \n
      _.hasIn(object, path)
      \n\n

      检查 path 是否是对象的直接 或者 继承属性。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要检索的对象

        \n
      2. \n
      3. path (Array|string)

        要检查的路径

        \n
      4. \n
      \n

      返回值 (boolean)

      \n

      如果存在返回 true,否则返回 false

      \n
      \n

      示例

      \n
      var object = _.create({ 'a': _.create({ 'b': _.create({ 'c': 3 }) }) });\n\n_.hasIn(object, 'a');\n// => true\n\n_.hasIn(object, 'a.b.c');\n// => true\n\n_.hasIn(object, ['a', 'b', 'c']);\n// => true\n\n_.hasIn(object, 'b');\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/invert", - "html":"

      invert source npm

      \n
      _.invert(object, [multiVal])
      \n\n

      创建一个键值倒置的对象。\n如果 object 有重复的值,后面的值会覆盖前面的值。\n如果 multiVal 为 true,重复的值则组成数组。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要倒置的对象

        \n
      2. \n
      3. [multiVal] (boolean)

        每个 key 允许多个值

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回新的倒置的对象

      \n
      \n

      示例

      \n
      var object = { 'a': 1, 'b': 2, 'c': 1 };\n\n_.invert(object);\n// => { '1': 'c', '2': 'b' }\n\n// 使用 `multiVal`\n_.invert(object, true);\n// => { '1': ['a', 'c'], '2': ['b'] }\n
      \n
      \n
      \n\n
      " } + "html":"

      invert source npm

      \n
      _.invert(object, [multiVal])
      \n\n

      创建一个键值倒置的对象。\n如果 object 有重复的值,后面的值会覆盖前面的值。\n如果 multiVal 为 true,重复的值则组成数组。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要倒置的对象

        \n
      2. \n
      3. [multiVal] (boolean)

        每个 key 允许多个值

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回新的倒置的对象

      \n
      \n

      示例

      \n
      var object = { 'a': 1, 'b': 2, 'c': 1 };\n\n_.invert(object);\n// => { '1': 'c', '2': 'b' }\n
      \n
      \n
      \n\n
      " } ,{ "href":"/invoke", - "html":"

      invoke source npm

      \n
      _.invoke(object, path, [args])
      \n\n

      调用对象路径的方法

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要检索的对象

        \n
      2. \n
      3. path (Array|string)

        要调用方法的路径

        \n
      4. \n
      5. [args] (...*)

        调用方法的参数

        \n
      6. \n
      \n

      返回值 (*)

      \n

      返回调用方法的结果

      \n
      \n

      示例

      \n
      var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };\n\n_.invoke(object, 'a[0].b.c.slice', 1, 3);\n// => [2, 3]\n
      \n
      \n
      \n\n
      " } + "html":"

      invoke source npm

      \n
      _.invoke(object, path, [args])
      \n\n

      调用对象路径的方法

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要检索的对象

        \n
      2. \n
      3. path (Array|string)

        要调用方法的路径

        \n
      4. \n
      5. [args] (...*)

        调用方法的参数

        \n
      6. \n
      \n

      返回值 (*)

      \n

      返回调用方法的结果

      \n
      \n

      示例

      \n
      var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };\n\n_.invoke(object, 'a[0].b.c.slice', 1, 3);\n// => [2, 3]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/keys", - "html":"

      keys source npm

      \n
      _.keys(object)
      \n\n

      创建 object 自身可枚举属性名为一个数组。\n
      \n
      \n注意: 非对象的值会被强制转换为对象,查看\nES spec\n了解详情

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要检索的对象

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回包含属性名的数组

      \n
      \n

      示例

      \n
      function Foo() {\n  this.a = 1;\n  this.b = 2;\n}\n\nFoo.prototype.c = 3;\n\n_.keys(new Foo);\n// => ['a', 'b'] (无法保证遍历的顺序)\n\n_.keys('hi');\n// => ['0', '1']\n
      \n
      \n
      \n\n
      " } + "html":"

      keys source npm

      \n
      _.keys(object)
      \n\n

      创建 object 自身可枚举属性名为一个数组。\n
      \n
      \n注意: 非对象的值会被强制转换为对象,查看\nES spec\n了解详情

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要检索的对象

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回包含属性名的数组

      \n
      \n

      示例

      \n
      function Foo() {\n  this.a = 1;\n  this.b = 2;\n}\n\nFoo.prototype.c = 3;\n\n_.keys(new Foo);\n// => ['a', 'b'] (无法保证遍历的顺序)\n\n_.keys('hi');\n// => ['0', '1']\n
      \n
      \n
      \n\n
      " } ,{ "href":"/keysIn", - "html":"

      keysIn source npm

      \n
      _.keysIn(object)
      \n\n

      创建 object 自身 或 继承的可枚举属性名为一个数组。\n
      \n
      \n注意: 非对象的值会被强制转换为对象

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要检索的对象

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回包含属性名的数组

      \n
      \n

      示例

      \n
      function Foo() {\n  this.a = 1;\n  this.b = 2;\n}\n\nFoo.prototype.c = 3;\n\n_.keysIn(new Foo);\n// => ['a', 'b', 'c'] (无法保证遍历的顺序)\n
      \n
      \n
      \n\n
      " } + "html":"

      keysIn source npm

      \n
      _.keysIn(object)
      \n\n

      创建 object 自身 或 继承的可枚举属性名为一个数组。\n
      \n
      \n注意: 非对象的值会被强制转换为对象

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要检索的对象

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回包含属性名的数组

      \n
      \n

      示例

      \n
      function Foo() {\n  this.a = 1;\n  this.b = 2;\n}\n\nFoo.prototype.c = 3;\n\n_.keysIn(new Foo);\n// => ['a', 'b', 'c'] (无法保证遍历的顺序)\n
      \n
      \n
      \n\n
      " } ,{ "href":"/mapKeys", - "html":"

      mapKeys source npm

      \n
      _.mapKeys(object, [iteratee=_.identity])
      \n\n

      反向版 _.mapValues。\n这个方法创建一个对象,对象的值与源对象相同,但 key 是通过 iteratee 产生的。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要遍历的对象

        \n
      2. \n
      3. [iteratee=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回映射后的新对象

      \n
      \n

      示例

      \n
      _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n  return key + value;\n});\n// => { 'a1': 1, 'b2': 2 }\n
      \n
      \n
      \n\n
      " } + "html":"

      mapKeys source npm

      \n
      _.mapKeys(object, [iteratee=_.identity])
      \n\n

      反向版 _.mapValues。\n这个方法创建一个对象,对象的值与源对象相同,但 key 是通过 iteratee 产生的。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要遍历的对象

        \n
      2. \n
      3. [iteratee=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回映射后的新对象

      \n
      \n

      示例

      \n
      _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n  return key + value;\n});\n// => { 'a1': 1, 'b2': 2 }\n
      \n
      \n
      \n\n
      " } ,{ "href":"/mapValues", - "html":"

      mapValues source npm

      \n
      _.mapValues(object, [iteratee=_.identity])
      \n\n

      创建一个对象,对象的key相同,值是通过 iteratee 产生的。\niteratee 会传入3个参数: (value, key, object)

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要遍历的对象

        \n
      2. \n
      3. [iteratee=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回映射后的对象

      \n
      \n

      示例

      \n
      var users = {\n  'fred':    { 'user': 'fred',    'age': 40 },\n  'pebbles': { 'user': 'pebbles', 'age': 1 }\n};\n\n_.mapValues(users, function(o) { return o.age; });\n// => { 'fred': 40, 'pebbles': 1 } (无法保证遍历的顺序)\n\n// 使用了 `_.property` 的回调结果\n_.mapValues(users, 'age');\n// => { 'fred': 40, 'pebbles': 1 } (无法保证遍历的顺序)\n
      \n
      \n
      \n\n
      " } + "html":"

      mapValues source npm

      \n
      _.mapValues(object, [iteratee=_.identity])
      \n\n

      创建一个对象,对象的key相同,值是通过 iteratee 产生的。\niteratee 会传入3个参数: (value, key, object)

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要遍历的对象

        \n
      2. \n
      3. [iteratee=_.identity] (Function|Object|string)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回映射后的对象

      \n
      \n

      示例

      \n
      var users = {\n  'fred':    { 'user': 'fred',    'age': 40 },\n  'pebbles': { 'user': 'pebbles', 'age': 1 }\n};\n\n_.mapValues(users, function(o) { return o.age; });\n// => { 'fred': 40, 'pebbles': 1 } (无法保证遍历的顺序)\n\n// 使用了 `_.property` 的回调结果\n_.mapValues(users, 'age');\n// => { 'fred': 40, 'pebbles': 1 } (无法保证遍历的顺序)\n
      \n
      \n
      \n\n
      " } ,{ "href":"/merge", - "html":"

      merge source npm

      \n
      _.merge(object, [sources])
      \n\n

      递归合并来源对象的自身和继承的可枚举属性到目标对象。\n跳过来源对象解析为 undefined 的属性。\n数组和普通对象会递归合并,其他对象和值会被直接分配。\n来源对象从左到右分配,后续的来源对象属性会覆盖之前分配的属性。\n
      \n
      \n注意: 这方法会改变源对象

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        目标对象

        \n
      2. \n
      3. [sources] (...Object)

        来源对象

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回对象

      \n
      \n

      示例

      \n
      var users = {\n  'data': [{ 'user': 'barney' }, { 'user': 'fred' }]\n};\n\nvar ages = {\n  'data': [{ 'age': 36 }, { 'age': 40 }]\n};\n\n_.merge(users, ages);\n// => { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] }\n
      \n
      \n
      \n\n
      " } + "html":"

      merge source npm

      \n
      _.merge(object, [sources])
      \n\n

      递归合并来源对象的自身和继承的可枚举属性到目标对象。\n跳过来源对象解析为 undefined 的属性。\n数组和普通对象会递归合并,其他对象和值会被直接分配。\n来源对象从左到右分配,后续的来源对象属性会覆盖之前分配的属性。\n
      \n
      \n注意: 这方法会改变源对象

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        目标对象

        \n
      2. \n
      3. [sources] (...Object)

        来源对象

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回对象

      \n
      \n

      示例

      \n
      var users = {\n  'data': [{ 'user': 'barney' }, { 'user': 'fred' }]\n};\n\nvar ages = {\n  'data': [{ 'age': 36 }, { 'age': 40 }]\n};\n\n_.merge(users, ages);\n// => { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] }\n
      \n
      \n
      \n\n
      " } ,{ "href":"/mergeWith", - "html":"

      mergeWith source npm

      \n
      _.mergeWith(object, sources, customizer)
      \n\n

      这个方法类似 _.merge。\n除了它接受一个 customizer 决定如何合并。\n如果 customizer 返回 undefined 将会由合并处理方法代替。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        目标对象

        \n
      2. \n
      3. sources (...Object)

        来源对象

        \n
      4. \n
      5. customizer (Function)

        这个方法决定如何合并

        \n
      6. \n
      \n

      返回值 (Object)

      \n

      返回对象

      \n
      \n

      示例

      \n
      function customizer(objValue, srcValue) {\n  if (_.isArray(objValue)) {\n    return objValue.concat(srcValue);\n  }\n}\n\nvar object = {\n  'fruits': ['apple'],\n  'vegetables': ['beet']\n};\n\nvar other = {\n  'fruits': ['banana'],\n  'vegetables': ['carrot']\n};\n\n_.mergeWith(object, other, customizer);\n// => { 'fruits': ['apple', 'banana'], 'vegetables': ['beet', 'carrot'] }\n
      \n
      \n
      \n\n
      " } + "html":"

      mergeWith source npm

      \n
      _.mergeWith(object, sources, customizer)
      \n\n

      这个方法类似 _.merge。\n除了它接受一个 customizer 决定如何合并。\n如果 customizer 返回 undefined 将会由合并处理方法代替。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        目标对象

        \n
      2. \n
      3. sources (...Object)

        来源对象

        \n
      4. \n
      5. customizer (Function)

        这个方法决定如何合并

        \n
      6. \n
      \n

      返回值 (Object)

      \n

      返回对象

      \n
      \n

      示例

      \n
      function customizer(objValue, srcValue) {\n  if (_.isArray(objValue)) {\n    return objValue.concat(srcValue);\n  }\n}\n\nvar object = {\n  'fruits': ['apple'],\n  'vegetables': ['beet']\n};\n\nvar other = {\n  'fruits': ['banana'],\n  'vegetables': ['carrot']\n};\n\n_.mergeWith(object, other, customizer);\n// => { 'fruits': ['apple', 'banana'], 'vegetables': ['beet', 'carrot'] }\n
      \n
      \n
      \n\n
      " } ,{ "href":"/omit", - "html":"

      omit source npm

      \n
      _.omit(object, [props])
      \n\n

      反向版 _.pick。\n这个方法返回忽略属性之外的自身和继承的可枚举属性。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        来源对象

        \n
      2. \n
      3. [props] (...(string|string[])

        要被忽略的属性,单独指定或指定在数组中

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回新对象

      \n
      \n

      示例

      \n
      var object = { 'user': 'fred', 'age': 40 };\n\n_.omit(object, 'user');\n// => { 'age': 40 }\n
      \n
      \n
      \n\n
      " } + "html":"

      omit source npm

      \n
      _.omit(object, [props])
      \n\n

      反向版 _.pick。\n这个方法返回忽略属性之外的自身和继承的可枚举属性。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        来源对象

        \n
      2. \n
      3. [props] (...(string|string[])

        要被忽略的属性,单独指定或指定在数组中

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回新对象

      \n
      \n

      示例

      \n
      var object = { 'a': 1, 'b': '2', 'c': 3 };\n\n_.omit(object, ['a', 'c']);\n// => { 'b': '2' }\n
      \n
      \n
      \n\n
      " } ,{ "href":"/omitBy", - "html":"

      omitBy source npm

      \n
      _.omitBy(object, [predicate=_.identity])
      \n\n

      反向版 _.pickBy。\n这个方法返回经 predicate 判断不是真值的属性的自身和继承的可枚举属性。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        来源对象

        \n
      2. \n
      3. [predicate=_.identity] (Function|Object|string)

        这个函数会调用每一个属性

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回新对象

      \n
      \n

      示例

      \n
      var object = { 'user': 'fred', 'age': 40 };\n\n_.omitBy(object, _.isNumber);\n// => { 'user': 'fred' }\n
      \n
      \n
      \n\n
      " } + "html":"

      omitBy source npm

      \n
      _.omitBy(object, [predicate=_.identity])
      \n\n

      反向版 _.pickBy。\n这个方法返回经 predicate 判断不是真值的属性的自身和继承的可枚举属性。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        来源对象

        \n
      2. \n
      3. [predicate=_.identity] (Function|Object|string)

        这个函数会调用每一个属性

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回新对象

      \n
      \n

      示例

      \n
      var object = { 'a': 1, 'b': '2', 'c': 3 };\n\n_.omitBy(object, _.isNumber);\n// => { 'b': '2' }\n
      \n
      \n
      \n\n
      " } ,{ "href":"/pick", - "html":"

      pick source npm

      \n
      _.pick(object, [props])
      \n\n

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

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        来源对象

        \n
      2. \n
      3. [props] (...(string|string[])

        要选中的属性名,单独指定或指定在数组中

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回新对象

      \n
      \n

      示例

      \n
      var object = { 'user': 'fred', 'age': 40 };\n\n_.pick(object, 'user');\n// => { 'user': 'fred' }\n
      \n
      \n
      \n\n
      " } + "html":"

      pick source npm

      \n
      _.pick(object, [props])
      \n\n

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

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        来源对象

        \n
      2. \n
      3. [props] (...(string|string[])

        要选中的属性名,单独指定或指定在数组中

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回新对象

      \n
      \n

      示例

      \n
      var object = { 'a': 1, 'b': '2', 'c': 3 };\n\n_.pick(object, ['a', 'c']);\n// => { 'a': 1, 'c': 3 }\n
      \n
      \n
      \n\n
      " } ,{ "href":"/pickBy", - "html":"

      pickBy source npm

      \n
      _.pickBy(object, [predicate=_.identity])
      \n\n

      创建一个从 object 中经 predicate 判断为真值的属性为对象。\npredicate 会传入1个参数:(value)

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        来源对象

        \n
      2. \n
      3. [predicate=_.identity] (Function|Object|string)

        这个函数会调用每一个属性

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回新对象

      \n
      \n

      示例

      \n
      var object = { 'user': 'fred', 'age': 40 };\n\n_.pickBy(object, _.isNumber);\n// => { 'age': 40 }\n
      \n
      \n
      \n\n
      " } + "html":"

      pickBy source npm

      \n
      _.pickBy(object, [predicate=_.identity])
      \n\n

      创建一个从 object 中经 predicate 判断为真值的属性为对象。\npredicate 会传入1个参数:(value)

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        来源对象

        \n
      2. \n
      3. [predicate=_.identity] (Function|Object|string)

        这个函数会调用每一个属性

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回新对象

      \n
      \n

      示例

      \n
      var object = { 'a': 1, 'b': '2', 'c': 3 };\n\n_.pickBy(object, _.isNumber);\n// => { 'a': 1, 'c': 3 }\n
      \n
      \n
      \n\n
      " } ,{ "href":"/result", - "html":"

      result source npm

      \n
      _.result(object, path, [defaultValue])
      \n\n

      这个方法类似 _.get。\n除了如果解析到的值是一个函数的话,就绑定 this 到这个函数并返回执行后的结果。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要检索的对象

        \n
      2. \n
      3. path (Array|string)

        要解析的属性路径

        \n
      4. \n
      5. [defaultValue] (*)

        如果值是 undefined,返回这个值

        \n
      6. \n
      \n

      返回值 (*)

      \n

      返回解析后的值

      \n
      \n

      示例

      \n
      var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };\n\n_.result(object, 'a[0].b.c1');\n// => 3\n\n_.result(object, 'a[0].b.c2');\n// => 4\n\n_.result(object, 'a[0].b.c3', 'default');\n// => 'default'\n\n_.result(object, 'a[0].b.c3', _.constant('default'));\n// => 'default'\n
      \n
      \n
      \n\n
      " } + "html":"

      result source npm

      \n
      _.result(object, path, [defaultValue])
      \n\n

      这个方法类似 _.get。\n除了如果解析到的值是一个函数的话,就绑定 this 到这个函数并返回执行后的结果。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要检索的对象

        \n
      2. \n
      3. path (Array|string)

        要解析的属性路径

        \n
      4. \n
      5. [defaultValue] (*)

        如果值是 undefined,返回这个值

        \n
      6. \n
      \n

      返回值 (*)

      \n

      返回解析后的值

      \n
      \n

      示例

      \n
      var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };\n\n_.result(object, 'a[0].b.c1');\n// => 3\n\n_.result(object, 'a[0].b.c2');\n// => 4\n\n_.result(object, 'a[0].b.c3', 'default');\n// => 'default'\n\n_.result(object, 'a[0].b.c3', _.constant('default'));\n// => 'default'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/set", - "html":"

      set source npm

      \n
      _.set(object, path, value)
      \n\n

      设置值到对象对应的属性路径上,如果没有则创建这部分路径。\n缺少的索引属性会创建为数组,而缺少的属性会创建为对象。\n使用 _.setWith 定制创建。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要修改的对象

        \n
      2. \n
      3. path (Array|string)

        要设置的对象路径

        \n
      4. \n
      5. value (*)

        要设置的值

        \n
      6. \n
      \n

      返回值 (Object)

      \n

      返回对象

      \n
      \n

      示例

      \n
      var object = { 'a': [{ 'b': { 'c': 3 } }] };\n\n_.set(object, 'a[0].b.c', 4);\nconsole.log(object.a[0].b.c);\n// => 4\n\n_.set(object, 'x[0].y.z', 5);\nconsole.log(object.x[0].y.z);\n// => 5\n
      \n
      \n
      \n\n
      " } + "html":"

      set source npm

      \n
      _.set(object, path, value)
      \n\n

      设置值到对象对应的属性路径上,如果没有则创建这部分路径。\n缺少的索引属性会创建为数组,而缺少的属性会创建为对象。\n使用 _.setWith 定制创建。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要修改的对象

        \n
      2. \n
      3. path (Array|string)

        要设置的对象路径

        \n
      4. \n
      5. value (*)

        要设置的值

        \n
      6. \n
      \n

      返回值 (Object)

      \n

      返回对象

      \n
      \n

      示例

      \n
      var object = { 'a': [{ 'b': { 'c': 3 } }] };\n\n_.set(object, 'a[0].b.c', 4);\nconsole.log(object.a[0].b.c);\n// => 4\n\n_.set(object, 'x[0].y.z', 5);\nconsole.log(object.x[0].y.z);\n// => 5\n
      \n
      \n
      \n\n
      " } ,{ "href":"/setWith", - "html":"

      setWith source npm

      \n
      _.setWith(object, path, value, [customizer])
      \n\n

      这个方法类似 _.set。\n除了它接受一个 customizer 决定如何设置对象路径的值。\n如果 customizer 返回 undefined 将会有它的处理方法代替。\ncustomizer 会传入3个参数:(nsValue, key, nsObject)

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要修改的对象

        \n
      2. \n
      3. path (Array|string)

        要设置的对象路径

        \n
      4. \n
      5. value (*)

        要设置的值

        \n
      6. \n
      7. [customizer] (Function)

        这个函数决定如何分配值

        \n
      8. \n
      \n

      返回值 (Object)

      \n

      返回对象

      \n
      \n

      示例

      \n
      _.setWith({ '0': { 'length': 2 } }, '[0][1][2]', 3, Object);\n// => { '0': { '1': { '2': 3 }, 'length': 2 } }\n
      \n
      \n
      \n\n
      " } + "html":"

      setWith source npm

      \n
      _.setWith(object, path, value, [customizer])
      \n\n

      这个方法类似 _.set。\n除了它接受一个 customizer 决定如何设置对象路径的值。\n如果 customizer 返回 undefined 将会有它的处理方法代替。\ncustomizer 会传入3个参数:(nsValue, key, nsObject)

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要修改的对象

        \n
      2. \n
      3. path (Array|string)

        要设置的对象路径

        \n
      4. \n
      5. value (*)

        要设置的值

        \n
      6. \n
      7. [customizer] (Function)

        这个函数决定如何分配值

        \n
      8. \n
      \n

      返回值 (Object)

      \n

      返回对象

      \n
      \n

      示例

      \n
      _.setWith({ '0': { 'length': 2 } }, '[0][1][2]', 3, Object);\n// => { '0': { '1': { '2': 3 }, 'length': 2 } }\n
      \n
      \n
      \n\n
      " } ,{ "href":"/toPairs", - "html":"

      toPairs source npm

      \n
      _.toPairs(object)
      \n\n

      创建一个对象自身可枚举属性的键值对数组。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要检索的对象

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回键值对的数组

      \n
      \n

      示例

      \n
      function Foo() {\n  this.a = 1;\n  this.b = 2;\n}\n\nFoo.prototype.c = 3;\n\n_.toPairs(new Foo);\n// => [['a', 1], ['b', 2]] (无法保证遍历的顺序)\n
      \n
      \n
      \n\n
      " } + "html":"

      toPairs source npm

      \n
      _.toPairs(object)
      \n\n

      创建一个对象自身可枚举属性的键值对数组。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要检索的对象

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回键值对的数组

      \n
      \n

      示例

      \n
      function Foo() {\n  this.a = 1;\n  this.b = 2;\n}\n\nFoo.prototype.c = 3;\n\n_.toPairs(new Foo);\n// => [['a', 1], ['b', 2]] (无法保证遍历的顺序)\n
      \n
      \n
      \n\n
      " } ,{ "href":"/toPairsIn", - "html":"

      toPairsIn source npm

      \n
      _.toPairsIn(object)
      \n\n

      创建一个对象自身和继承的可枚举属性的键值对数组。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要检索的对象

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回键值对的数组

      \n
      \n

      示例

      \n
      function Foo() {\n  this.a = 1;\n  this.b = 2;\n}\n\nFoo.prototype.c = 3;\n\n_.toPairsIn(new Foo);\n// => [['a', 1], ['b', 2], ['c', 1]] (无法保证遍历的顺序)\n
      \n
      \n
      \n\n
      " } + "html":"

      toPairsIn source npm

      \n
      _.toPairsIn(object)
      \n\n

      创建一个对象自身和继承的可枚举属性的键值对数组。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要检索的对象

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回键值对的数组

      \n
      \n

      示例

      \n
      function Foo() {\n  this.a = 1;\n  this.b = 2;\n}\n\nFoo.prototype.c = 3;\n\n_.toPairsIn(new Foo);\n// => [['a', 1], ['b', 2], ['c', 1]] (无法保证遍历的顺序)\n
      \n
      \n
      \n\n
      " } ,{ "href":"/transform", - "html":"

      transform source npm

      \n
      _.transform(object, [iteratee=_.identity], [accumulator])
      \n\n

      _.reduce 的代替方法。\n这个方法会改变对象为一个新的 accumulator 对象,来自每一次经 iteratee 处理自身可枚举对象的结果。\n每次调用可能会改变 accumulator 对象。\niteratee 会传入4个对象:(accumulator, value, key, object)。\n如果返回 false,iteratee 会提前退出。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Array|Object)

        要遍历的对象

        \n
      2. \n
      3. [iteratee=_.identity] (Function)

        这个函数会处理每一个元素

        \n
      4. \n
      5. [accumulator] (*)

        定制叠加的值

        \n
      6. \n
      \n

      返回值 (*)

      \n

      返回叠加后的值

      \n
      \n

      示例

      \n
      _.transform([2, 3, 4], function(result, n) {\n  result.push(n *= n);\n  return n % 2 == 0;\n});\n// => [4, 9]\n\n_.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n  (result[value] || (result[value] = [])).push(key);\n});\n// => { '1': ['a', 'c'], '2': ['b'] }\n
      \n
      \n
      \n\n
      " } + "html":"

      transform source npm

      \n
      _.transform(object, [iteratee=_.identity], [accumulator])
      \n\n

      _.reduce 的代替方法。\n这个方法会改变对象为一个新的 accumulator 对象,来自每一次经 iteratee 处理自身可枚举对象的结果。\n每次调用可能会改变 accumulator 对象。\niteratee 会传入4个对象:(accumulator, value, key, object)。\n如果返回 false,iteratee 会提前退出。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Array|Object)

        要遍历的对象

        \n
      2. \n
      3. [iteratee=_.identity] (Function)

        这个函数会处理每一个元素

        \n
      4. \n
      5. [accumulator] (*)

        定制叠加的值

        \n
      6. \n
      \n

      返回值 (*)

      \n

      返回叠加后的值

      \n
      \n

      示例

      \n
      _.transform([2, 3, 4], function(result, n) {\n  result.push(n *= n);\n  return n % 2 == 0;\n});\n// => [4, 9]\n\n_.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n  (result[value] || (result[value] = [])).push(key);\n});\n// => { '1': ['a', 'c'], '2': ['b'] }\n
      \n
      \n
      \n\n
      " } ,{ "href":"/unset", - "html":"

      unset source npm

      \n
      _.unset(object, path)
      \n\n

      移除对象路径的属性。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要修改的对象

        \n
      2. \n
      3. path (Array|string)

        要移除的对象路径

        \n
      4. \n
      \n

      返回值 (boolean)

      \n

      移除成功返回 true,否则返回 false

      \n
      \n

      示例

      \n
      var object = { 'a': [{ 'b': { 'c': 7 } }] };\n_.unset(object, 'a[0].b.c');\n// => true\n\nconsole.log(object);\n// => { 'a': [{ 'b': {} }] };\n\n_.unset(object, 'a[0].b.c');\n// => true\n\nconsole.log(object);\n// => { 'a': [{ 'b': {} }] };\n
      \n
      \n
      \n\n
      " } + "html":"

      unset source npm

      \n
      _.unset(object, path)
      \n\n

      移除对象路径的属性。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要修改的对象

        \n
      2. \n
      3. path (Array|string)

        要移除的对象路径

        \n
      4. \n
      \n

      返回值 (boolean)

      \n

      移除成功返回 true,否则返回 false

      \n
      \n

      示例

      \n
      var object = { 'a': [{ 'b': { 'c': 7 } }] };\n_.unset(object, 'a[0].b.c');\n// => true\n\nconsole.log(object);\n// => { 'a': [{ 'b': {} }] };\n\n_.unset(object, 'a[0].b.c');\n// => true\n\nconsole.log(object);\n// => { 'a': [{ 'b': {} }] };\n
      \n
      \n
      \n\n
      " } ,{ "href":"/values", - "html":"

      values source npm

      \n
      _.values(object)
      \n\n

      创建 object 自身可枚举属性的值为数组\n
      \n
      \n注意: 非对象的值会强制转换为对象

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要检索的对象

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回对象属性的值的数组

      \n
      \n

      示例

      \n
      function Foo() {\n  this.a = 1;\n  this.b = 2;\n}\n\nFoo.prototype.c = 3;\n\n_.values(new Foo);\n// => [1, 2] (无法保证遍历的顺序)\n\n_.values('hi');\n// => ['h', 'i']\n
      \n
      \n
      \n\n
      " } + "html":"

      values source npm

      \n
      _.values(object)
      \n\n

      创建 object 自身可枚举属性的值为数组\n
      \n
      \n注意: 非对象的值会强制转换为对象

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要检索的对象

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回对象属性的值的数组

      \n
      \n

      示例

      \n
      function Foo() {\n  this.a = 1;\n  this.b = 2;\n}\n\nFoo.prototype.c = 3;\n\n_.values(new Foo);\n// => [1, 2] (无法保证遍历的顺序)\n\n_.values('hi');\n// => ['h', 'i']\n
      \n
      \n
      \n\n
      " } ,{ "href":"/valuesIn", - "html":"

      valuesIn source npm

      \n
      _.valuesIn(object)
      \n\n

      创建 object 自身和继承的可枚举属性的值为数组\n
      \n
      \n注意: 非对象的值会强制转换为对象

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要检索的对象

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      Returns the array of property values.

      \n
      \n

      示例

      \n
      function Foo() {\n  this.a = 1;\n  this.b = 2;\n}\n\nFoo.prototype.c = 3;\n\n_.valuesIn(new Foo);\n// => [1, 2, 3] (无法保证遍历的顺序)\n
      \n
      \n
      \n\n
      " } + "html":"

      valuesIn source npm

      \n
      _.valuesIn(object)
      \n\n

      创建 object 自身和继承的可枚举属性的值为数组\n
      \n
      \n注意: 非对象的值会强制转换为对象

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要检索的对象

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      Returns the array of property values.

      \n
      \n

      示例

      \n
      function Foo() {\n  this.a = 1;\n  this.b = 2;\n}\n\nFoo.prototype.c = 3;\n\n_.valuesIn(new Foo);\n// => [1, 2, 3] (无法保证遍历的顺序)\n
      \n
      \n
      \n\n
      " } ,{ "href":"/templateSettings", - "html":"

      templateSettings source npm

      \n
      _.templateSettings
      \n\n

      (Object): 默认情况下,这些都是用于处理lodash的模板,类似 Ruby 的嵌入式 (ERB)。\n可以改变接下来的设置用新的方式代替。

      \n
      \n\n
      \n\n
      " } + "html":"

      templateSettings source npm

      \n
      _.templateSettings
      \n\n

      (Object): 默认情况下,这些都是用于处理lodash的模板,类似 Ruby 的嵌入式 (ERB)。\n可以改变接下来的设置用新的方式代替。

      \n
      \n\n
      \n\n
      " } ,{ "href":"/templateSettings-escape", - "html":"

      templateSettings.escape source

      \n
      _.templateSettings.escape
      \n\n

      (RegExp): 用于检测要进行HTML转义 data 的属性值。

      \n
      \n\n
      \n\n
      " } + "html":"

      templateSettings.escape source

      \n
      _.templateSettings.escape
      \n\n

      (RegExp): 用于检测要进行HTML转义 data 的属性值。

      \n
      \n\n
      \n\n
      " } ,{ "href":"/templateSettings-evaluate", - "html":"

      templateSettings.evaluate source

      \n
      _.templateSettings.evaluate
      \n\n

      (RegExp): 用于检测表达式代码

      \n
      \n\n
      \n\n
      " } + "html":"

      templateSettings.evaluate source

      \n
      _.templateSettings.evaluate
      \n\n

      (RegExp): 用于检测表达式代码

      \n
      \n\n
      \n\n
      " } ,{ "href":"/templateSettings-imports", - "html":"

      templateSettings.imports source

      \n
      _.templateSettings.imports
      \n\n

      (Object): 用于导入变量到编译模板

      \n
      \n\n
      \n\n
      " } + "html":"

      templateSettings.imports source

      \n
      _.templateSettings.imports
      \n\n

      (Object): 用于导入变量到编译模板

      \n
      \n\n
      \n\n
      " } ,{ "href":"/templateSettings-interpolate", - "html":"

      templateSettings.interpolate source

      \n
      _.templateSettings.interpolate
      \n\n

      (RegExp): 用于检测要插入的 data 的属性值。

      \n
      \n\n
      \n\n
      " } + "html":"

      templateSettings.interpolate source

      \n
      _.templateSettings.interpolate
      \n\n

      (RegExp): 用于检测要插入的 data 的属性值。

      \n
      \n\n
      \n\n
      " } ,{ "href":"/templateSettings-variable", - "html":"

      templateSettings.variable source

      \n
      _.templateSettings.variable
      \n\n

      (string): 用于引用模板文本中的 data 对象

      \n
      \n\n
      \n\n
      " } + "html":"

      templateSettings.variable source

      \n
      _.templateSettings.variable
      \n\n

      (string): 用于引用模板文本中的 data 对象

      \n
      \n\n
      \n\n
      " } ,{ "href":"/VERSION", - "html":"

      VERSION source

      \n
      _.VERSION
      \n\n

      (string): 语义化版本号

      \n
      \n\n
      \n\n
      " } + "html":"

      VERSION source

      \n
      _.VERSION
      \n\n

      (string): 语义化版本号

      \n
      \n\n
      \n\n
      " } ,{ "href":"/camelCase", - "html":"

      camelCase source npm

      \n
      _.camelCase([string=''])
      \n\n

      转换字符串为 驼峰写法

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要转换的字符串

        \n
      2. \n
      \n

      返回值 (string)

      \n

      返回驼峰写法的字符串

      \n
      \n

      示例

      \n
      _.camelCase('Foo Bar');\n// => 'fooBar'\n\n_.camelCase('--foo-bar');\n// => 'fooBar'\n\n_.camelCase('__foo_bar__');\n// => 'fooBar'\n
      \n
      \n
      \n\n
      " } + "html":"

      camelCase source npm

      \n
      _.camelCase([string=''])
      \n\n

      转换字符串为 驼峰写法

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要转换的字符串

        \n
      2. \n
      \n

      返回值 (string)

      \n

      返回驼峰写法的字符串

      \n
      \n

      示例

      \n
      _.camelCase('Foo Bar');\n// => 'fooBar'\n\n_.camelCase('--foo-bar');\n// => 'fooBar'\n\n_.camelCase('__foo_bar__');\n// => 'fooBar'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/capitalize", - "html":"

      capitalize source npm

      \n
      _.capitalize([string=''])
      \n\n

      转换字符串首字母为大写,剩下为小写。

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要大写开头的字符串

        \n
      2. \n
      \n

      返回值 (string)

      \n

      返回大写开头的字符串

      \n
      \n

      示例

      \n
      _.capitalize('FRED');\n// => 'Fred'\n
      \n
      \n
      \n\n
      " } + "html":"

      capitalize source npm

      \n
      _.capitalize([string=''])
      \n\n

      转换字符串首字母为大写,剩下为小写。

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要大写开头的字符串

        \n
      2. \n
      \n

      返回值 (string)

      \n

      返回大写开头的字符串

      \n
      \n

      示例

      \n
      _.capitalize('FRED');\n// => 'Fred'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/deburr", - "html":"

      deburr source npm

      \n
      _.deburr([string=''])
      \n\n

      转换 latin-1 supplementary letters#Character_table) 为基本拉丁字母,并删除变音符

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要处理的字符串

        \n
      2. \n
      \n

      返回值 (string)

      \n

      返回处理后的字符串

      \n
      \n

      示例

      \n
      _.deburr('déjà vu');\n// => 'deja vu'\n
      \n
      \n
      \n\n
      " } + "html":"

      deburr source npm

      \n
      _.deburr([string=''])
      \n\n

      转换 latin-1 supplementary letters#Character_table) 为基本拉丁字母,并删除变音符

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要处理的字符串

        \n
      2. \n
      \n

      返回值 (string)

      \n

      返回处理后的字符串

      \n
      \n

      示例

      \n
      _.deburr('déjà vu');\n// => 'deja vu'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/endsWith", - "html":"

      endsWith source npm

      \n
      _.endsWith([string=''], [target], [position=string.length])
      \n\n

      检查给定的字符是否是字符串的结尾

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要检索的字符串

        \n
      2. \n
      3. [target] (string)

        要检索字符

        \n
      4. \n
      5. [position=string.length] (number)

        检索的位置

        \n
      6. \n
      \n

      返回值 (boolean)

      \n

      如果是结尾返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.endsWith('abc', 'c');\n// => true\n\n_.endsWith('abc', 'b');\n// => false\n\n_.endsWith('abc', 'b', 2);\n// => true\n
      \n
      \n
      \n\n
      " } + "html":"

      endsWith source npm

      \n
      _.endsWith([string=''], [target], [position=string.length])
      \n\n

      检查给定的字符是否是字符串的结尾

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要检索的字符串

        \n
      2. \n
      3. [target] (string)

        要检索字符

        \n
      4. \n
      5. [position=string.length] (number)

        检索的位置

        \n
      6. \n
      \n

      返回值 (boolean)

      \n

      如果是结尾返回 true,否则返回 false

      \n
      \n

      示例

      \n
      _.endsWith('abc', 'c');\n// => true\n\n_.endsWith('abc', 'b');\n// => false\n\n_.endsWith('abc', 'b', 2);\n// => true\n
      \n
      \n
      \n\n
      " } ,{ "href":"/escape", - "html":"

      escape source npm

      \n
      _.escape([string=''])
      \n\n

      转义字符 "&", "<", ">", '"', "'", 以及 "`" 为HTML实体字符。\n
      \n
      \n注意: 不会转义其他字符,如果需要,可以使用第三方库,例如 he。\n
      \n
      \n虽然 ">" 是对称转义的,像是 ">" 和 "/" 没有特殊的意义,所以不需要在 HTML 中转义。\n除非它们是标签的一部分,或者是不带引号的属性值。\n查看 Mathias Bynens 的文章\n(under "semi-related fun fact") 了解详情\n
      \n
      \n在 IE < 9 中转义引号,因为会中断属性值或 HTML 注释,查看\nHTML5 安全列表#59,\n#102, #108, 以及\n#133 了解详情\n
      \n
      \n当解析为 HTML 时应该总是 引用属性值\n以减少 XSS 的可能性。

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要转义的字符串

        \n
      2. \n
      \n

      返回值 (string)

      \n

      返回转义后的字符串

      \n
      \n

      示例

      \n
      _.escape('fred, barney, & pebbles');\n// => 'fred, barney, &amp; pebbles'\n
      \n
      \n
      \n\n
      " } + "html":"

      escape source npm

      \n
      _.escape([string=''])
      \n\n

      转义字符 "&", "<", ">", '"', "'", 以及 "`" 为HTML实体字符。\n
      \n
      \n注意: 不会转义其他字符,如果需要,可以使用第三方库,例如 he。\n
      \n
      \n虽然 ">" 是对称转义的,像是 ">" 和 "/" 没有特殊的意义,所以不需要在 HTML 中转义。\n除非它们是标签的一部分,或者是不带引号的属性值。\n查看 Mathias Bynens 的文章\n(under "semi-related fun fact") 了解详情\n
      \n
      \n在 IE < 9 中转义引号,因为会中断属性值或 HTML 注释,查看\nHTML5 安全列表#59,\n#102, #108, 以及\n#133 了解详情\n
      \n
      \n当解析为 HTML 时应该总是 引用属性值\n以减少 XSS 的可能性。

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要转义的字符串

        \n
      2. \n
      \n

      返回值 (string)

      \n

      返回转义后的字符串

      \n
      \n

      示例

      \n
      _.escape('fred, barney, & pebbles');\n// => 'fred, barney, &amp; pebbles'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/escapeRegExp", - "html":"

      escapeRegExp source npm

      \n
      _.escapeRegExp([string=''])
      \n\n

      转义RegExp 中特殊的字符 "^", "$", "\\", ".", "*", "+",\n"?", "(", ")", "[", "]", "{", "}", 以及 "|"。

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要转义的字符串

        \n
      2. \n
      \n

      返回值 (string)

      \n

      返回转义后的字符串

      \n
      \n

      示例

      \n
      _.escapeRegExp('[lodash](https://lodash.com/)');\n// => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n
      \n
      \n
      \n\n
      " } + "html":"

      escapeRegExp source npm

      \n
      _.escapeRegExp([string=''])
      \n\n

      转义RegExp 中特殊的字符 "^", "$", "\\", ".", "*", "+",\n"?", "(", ")", "[", "]", "{", "}", 以及 "|"。

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要转义的字符串

        \n
      2. \n
      \n

      返回值 (string)

      \n

      返回转义后的字符串

      \n
      \n

      示例

      \n
      _.escapeRegExp('[lodash](https://lodash.com/)');\n// => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/kebabCase", - "html":"

      kebabCase source npm

      \n
      _.kebabCase([string=''])
      \n\n

      转换字符串为 kebab case

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要转换的字符串

        \n
      2. \n
      \n

      返回值 (string)

      \n

      返回转换后的字符串

      \n
      \n

      示例

      \n
      _.kebabCase('Foo Bar');\n// => 'foo-bar'\n\n_.kebabCase('fooBar');\n// => 'foo-bar'\n\n_.kebabCase('__foo_bar__');\n// => 'foo-bar'\n
      \n
      \n
      \n\n
      " } + "html":"

      kebabCase source npm

      \n
      _.kebabCase([string=''])
      \n\n

      转换字符串为 kebab case

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要转换的字符串

        \n
      2. \n
      \n

      返回值 (string)

      \n

      返回转换后的字符串

      \n
      \n

      示例

      \n
      _.kebabCase('Foo Bar');\n// => 'foo-bar'\n\n_.kebabCase('fooBar');\n// => 'foo-bar'\n\n_.kebabCase('__foo_bar__');\n// => 'foo-bar'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/lowerCase", - "html":"

      lowerCase source npm

      \n
      _.lowerCase([string=''])
      \n\n

      以空格分开单词并转换为小写。

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要转换的字符串

        \n
      2. \n
      \n

      返回值 (string)

      \n

      返回小写的字符串

      \n
      \n

      示例

      \n
      _.lowerCase('--Foo-Bar');\n// => 'foo bar'\n\n_.lowerCase('fooBar');\n// => 'foo bar'\n\n_.lowerCase('__FOO_BAR__');\n// => 'foo bar'\n
      \n
      \n
      \n\n
      " } + "html":"

      lowerCase source npm

      \n
      _.lowerCase([string=''])
      \n\n

      以空格分开单词并转换为小写。

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要转换的字符串

        \n
      2. \n
      \n

      返回值 (string)

      \n

      返回小写的字符串

      \n
      \n

      示例

      \n
      _.lowerCase('--Foo-Bar');\n// => 'foo bar'\n\n_.lowerCase('fooBar');\n// => 'foo bar'\n\n_.lowerCase('__FOO_BAR__');\n// => 'foo bar'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/lowerFirst", - "html":"

      lowerFirst source npm

      \n
      _.lowerFirst([string=''])
      \n\n

      转换首字母为小写。

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要转换的字符串

        \n
      2. \n
      \n

      返回值 (string)

      \n

      返回转换后的字符串

      \n
      \n

      示例

      \n
      _.lowerFirst('Fred');\n// => 'fred'\n\n_.lowerFirst('FRED');\n// => 'fRED'\n
      \n
      \n
      \n\n
      " } + "html":"

      lowerFirst source npm

      \n
      _.lowerFirst([string=''])
      \n\n

      转换首字母为小写。

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要转换的字符串

        \n
      2. \n
      \n

      返回值 (string)

      \n

      返回转换后的字符串

      \n
      \n

      示例

      \n
      _.lowerFirst('Fred');\n// => 'fred'\n\n_.lowerFirst('FRED');\n// => 'fRED'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/pad", - "html":"

      pad source npm

      \n
      _.pad([string=''], [length=0], [chars=' '])
      \n\n

      如果字符串长度小于 length 则从左到右填充字符。\n如果没法平均分配,则截断超出的长度。

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要填充的字符串

        \n
      2. \n
      3. [length=0] (number)

        填充的长度

        \n
      4. \n
      5. [chars=' '] (string)

        填充字符

        \n
      6. \n
      \n

      返回值 (string)

      \n

      返回填充后的字符串

      \n
      \n

      示例

      \n
      _.pad('abc', 8);\n// => '  abc   '\n\n_.pad('abc', 8, '_-');\n// => '_-abc_-_'\n\n_.pad('abc', 3);\n// => 'abc'\n
      \n
      \n
      \n\n
      " } + "html":"

      pad source npm

      \n
      _.pad([string=''], [length=0], [chars=' '])
      \n\n

      如果字符串长度小于 length 则从左到右填充字符。\n如果没法平均分配,则截断超出的长度。

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要填充的字符串

        \n
      2. \n
      3. [length=0] (number)

        填充的长度

        \n
      4. \n
      5. [chars=' '] (string)

        填充字符

        \n
      6. \n
      \n

      返回值 (string)

      \n

      返回填充后的字符串

      \n
      \n

      示例

      \n
      _.pad('abc', 8);\n// => '  abc   '\n\n_.pad('abc', 8, '_-');\n// => '_-abc_-_'\n\n_.pad('abc', 3);\n// => 'abc'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/padEnd", - "html":"

      padEnd source npm

      \n
      _.padEnd([string=''], [length=0], [chars=' '])
      \n\n

      如果字符串长度小于 length 则在右侧填充字符。 如果超出长度则截断超出的部分。

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要填充的字符串

        \n
      2. \n
      3. [length=0] (number)

        填充的长度

        \n
      4. \n
      5. [chars=' '] (string)

        填充字符

        \n
      6. \n
      \n

      返回值 (string)

      \n

      Returns 返回填充后的字符串

      \n
      \n

      示例

      \n
      _.padEnd('abc', 6);\n// => 'abc   '\n\n_.padEnd('abc', 6, '_-');\n// => 'abc_-_'\n\n_.padEnd('abc', 3);\n// => 'abc'\n
      \n
      \n
      \n\n
      " } + "html":"

      padEnd source npm

      \n
      _.padEnd([string=''], [length=0], [chars=' '])
      \n\n

      如果字符串长度小于 length 则在右侧填充字符。 如果超出长度则截断超出的部分。

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要填充的字符串

        \n
      2. \n
      3. [length=0] (number)

        填充的长度

        \n
      4. \n
      5. [chars=' '] (string)

        填充字符

        \n
      6. \n
      \n

      返回值 (string)

      \n

      Returns 返回填充后的字符串

      \n
      \n

      示例

      \n
      _.padEnd('abc', 6);\n// => 'abc   '\n\n_.padEnd('abc', 6, '_-');\n// => 'abc_-_'\n\n_.padEnd('abc', 3);\n// => 'abc'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/padStart", - "html":"

      padStart source npm

      \n
      _.padStart([string=''], [length=0], [chars=' '])
      \n\n

      如果字符串长度小于 length 则在左侧填充字符。 如果超出长度则截断超出的部分。

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要填充的字符串

        \n
      2. \n
      3. [length=0] (number)

        填充的长度

        \n
      4. \n
      5. [chars=' '] (string)

        填充字符

        \n
      6. \n
      \n

      返回值 (string)

      \n

      Returns 返回填充后的字符串

      \n
      \n

      示例

      \n
      _.padStart('abc', 6);\n// => '   abc'\n\n_.padStart('abc', 6, '_-');\n// => '_-_abc'\n\n_.padStart('abc', 3);\n// => 'abc'\n
      \n
      \n
      \n\n
      " } + "html":"

      padStart source npm

      \n
      _.padStart([string=''], [length=0], [chars=' '])
      \n\n

      如果字符串长度小于 length 则在左侧填充字符。 如果超出长度则截断超出的部分。

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要填充的字符串

        \n
      2. \n
      3. [length=0] (number)

        填充的长度

        \n
      4. \n
      5. [chars=' '] (string)

        填充字符

        \n
      6. \n
      \n

      返回值 (string)

      \n

      Returns 返回填充后的字符串

      \n
      \n

      示例

      \n
      _.padStart('abc', 6);\n// => '   abc'\n\n_.padStart('abc', 6, '_-');\n// => '_-_abc'\n\n_.padStart('abc', 3);\n// => 'abc'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/parseInt", - "html":"

      parseInt source npm

      \n
      _.parseInt(string, [radix])
      \n\n

      以指定的基数转换字符串为整数。\n如果基数是 undefined 或者 0,则基数默认是10,如果字符串是16进制,则基数为16。\n
      \n
      \n注意: 这个方法与 ES5 implementation\n的 parseInt 一致

      \n
      \n\n

      参数

      \n
        \n
      1. string (string)

        要转换的字符串

        \n
      2. \n
      3. [radix] (number)

        基数

        \n
      4. \n
      \n

      返回值 (number)

      \n

      返回转换后的整数

      \n
      \n

      示例

      \n
      _.parseInt('08');\n// => 8\n\n_.map(['6', '08', '10'], _.parseInt);\n// => [6, 8, 10]\n
      \n
      \n
      \n\n
      " } + "html":"

      parseInt source npm

      \n
      _.parseInt(string, [radix])
      \n\n

      以指定的基数转换字符串为整数。\n如果基数是 undefined 或者 0,则基数默认是10,如果字符串是16进制,则基数为16。\n
      \n
      \n注意: 这个方法与 ES5 implementation\n的 parseInt 一致

      \n
      \n\n

      参数

      \n
        \n
      1. string (string)

        要转换的字符串

        \n
      2. \n
      3. [radix] (number)

        基数

        \n
      4. \n
      \n

      返回值 (number)

      \n

      返回转换后的整数

      \n
      \n

      示例

      \n
      _.parseInt('08');\n// => 8\n\n_.map(['6', '08', '10'], _.parseInt);\n// => [6, 8, 10]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/repeat", - "html":"

      repeat source npm

      \n
      _.repeat([string=''], [n=0])
      \n\n

      重复 N 次字符串

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要重复的字符串

        \n
      2. \n
      3. [n=0] (number)

        重复的次数

        \n
      4. \n
      \n

      返回值 (string)

      \n

      返回重复的字符串

      \n
      \n

      示例

      \n
      _.repeat('*', 3);\n// => '***'\n\n_.repeat('abc', 2);\n// => 'abcabc'\n\n_.repeat('abc', 0);\n// => ''\n
      \n
      \n
      \n\n
      " } + "html":"

      repeat source npm

      \n
      _.repeat([string=''], [n=0])
      \n\n

      重复 N 次字符串

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要重复的字符串

        \n
      2. \n
      3. [n=0] (number)

        重复的次数

        \n
      4. \n
      \n

      返回值 (string)

      \n

      返回重复的字符串

      \n
      \n

      示例

      \n
      _.repeat('*', 3);\n// => '***'\n\n_.repeat('abc', 2);\n// => 'abcabc'\n\n_.repeat('abc', 0);\n// => ''\n
      \n
      \n
      \n\n
      " } ,{ "href":"/replace", - "html":"

      replace source npm

      \n
      _.replace([string=''], pattern, 要替换的内容)
      \n\n

      替换字符串中匹配的内容为给定的内容\n
      \n
      \n注意: 这个方法基于 String#replace

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        待替换的字符串

        \n
      2. \n
      3. pattern (RegExp|string)

        要匹配的内容

        \n
      4. \n
      5. 要替换的内容 (Function|string)
         
      6. \n
      \n

      返回值 (string)

      \n

      返回替换完成的字符串

      \n
      \n

      示例

      \n
      _.replace('Hi Fred', 'Fred', 'Barney');\n// => 'Hi Barney'\n
      \n
      \n
      \n\n
      " } + "html":"

      replace source npm

      \n
      _.replace([string=''], pattern, 要替换的内容)
      \n\n

      替换字符串中匹配的内容为给定的内容\n
      \n
      \n注意: 这个方法基于 String#replace

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        待替换的字符串

        \n
      2. \n
      3. pattern (RegExp|string)

        要匹配的内容

        \n
      4. \n
      5. 要替换的内容 (Function|string)
         
      6. \n
      \n

      返回值 (string)

      \n

      返回替换完成的字符串

      \n
      \n

      示例

      \n
      _.replace('Hi Fred', 'Fred', 'Barney');\n// => 'Hi Barney'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/snakeCase", - "html":"

      snakeCase source npm

      \n
      _.snakeCase([string=''])
      \n\n

      转换字符串为 snake case

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要转换的字符串

        \n
      2. \n
      \n

      返回值 (string)

      \n

      返回转换后的字符串

      \n
      \n

      示例

      \n
      _.snakeCase('Foo Bar');\n// => 'foo_bar'\n\n_.snakeCase('fooBar');\n// => 'foo_bar'\n\n_.snakeCase('--foo-bar');\n// => 'foo_bar'\n
      \n
      \n
      \n\n
      " } + "html":"

      snakeCase source npm

      \n
      _.snakeCase([string=''])
      \n\n

      转换字符串为 snake case

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要转换的字符串

        \n
      2. \n
      \n

      返回值 (string)

      \n

      返回转换后的字符串

      \n
      \n

      示例

      \n
      _.snakeCase('Foo Bar');\n// => 'foo_bar'\n\n_.snakeCase('fooBar');\n// => 'foo_bar'\n\n_.snakeCase('--foo-bar');\n// => 'foo_bar'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/split", - "html":"

      split source npm

      \n
      _.split([string=''], [separator], [limit])
      \n\n

      separator 拆分字符串\n
      \n
      \n注意: 这个方法基于 String#split

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要拆分的字符串

        \n
      2. \n
      3. [separator] (RegExp|string)

        拆分的分隔符

        \n
      4. \n
      5. [limit] (number)

        限制的数量

        \n
      6. \n
      \n

      返回值 (Array)

      \n

      返回拆分部分的字符串的数组

      \n
      \n

      示例

      \n
      _.split('a-b-c', '-', 2);\n// => ['a', 'b']\n
      \n
      \n
      \n\n
      " } + "html":"

      split source npm

      \n
      _.split([string=''], [separator], [limit])
      \n\n

      separator 拆分字符串\n
      \n
      \n注意: 这个方法基于 String#split

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要拆分的字符串

        \n
      2. \n
      3. [separator] (RegExp|string)

        拆分的分隔符

        \n
      4. \n
      5. [limit] (number)

        限制的数量

        \n
      6. \n
      \n

      返回值 (Array)

      \n

      返回拆分部分的字符串的数组

      \n
      \n

      示例

      \n
      _.split('a-b-c', '-', 2);\n// => ['a', 'b']\n
      \n
      \n
      \n\n
      " } ,{ "href":"/startCase", - "html":"

      startCase source npm

      \n
      _.startCase([string=''])
      \n\n

      转换字符串为 start case

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要转换的字符串

        \n
      2. \n
      \n

      返回值 (string)

      \n

      返回转换后的字符串

      \n
      \n

      示例

      \n
      _.startCase('--foo-bar');\n// => 'Foo Bar'\n\n_.startCase('fooBar');\n// => 'Foo Bar'\n\n_.startCase('__foo_bar__');\n// => 'Foo Bar'\n
      \n
      \n
      \n\n
      " } + "html":"

      startCase source npm

      \n
      _.startCase([string=''])
      \n\n

      转换字符串为 start case

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要转换的字符串

        \n
      2. \n
      \n

      返回值 (string)

      \n

      返回转换后的字符串

      \n
      \n

      示例

      \n
      _.startCase('--foo-bar');\n// => 'Foo Bar'\n\n_.startCase('fooBar');\n// => 'Foo Bar'\n\n_.startCase('__foo_bar__');\n// => 'Foo Bar'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/startsWith", - "html":"

      startsWith source npm

      \n
      _.startsWith([string=''], [target], [position=0])
      \n\n

      检查字符串是否以 target 开头。

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要检索的字符串

        \n
      2. \n
      3. [target] (string)

        要检查的字符串

        \n
      4. \n
      5. [position=0] (number)

        检索的位置

        \n
      6. \n
      \n

      返回值 (boolean)

      \n

      如果符合条件返回true,否则返回 false

      \n
      \n

      示例

      \n
      _.startsWith('abc', 'a');\n// => true\n\n_.startsWith('abc', 'b');\n// => false\n\n_.startsWith('abc', 'b', 1);\n// => true\n
      \n
      \n
      \n\n
      " } + "html":"

      startsWith source npm

      \n
      _.startsWith([string=''], [target], [position=0])
      \n\n

      检查字符串是否以 target 开头。

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要检索的字符串

        \n
      2. \n
      3. [target] (string)

        要检查的字符串

        \n
      4. \n
      5. [position=0] (number)

        检索的位置

        \n
      6. \n
      \n

      返回值 (boolean)

      \n

      如果符合条件返回true,否则返回 false

      \n
      \n

      示例

      \n
      _.startsWith('abc', 'a');\n// => true\n\n_.startsWith('abc', 'b');\n// => false\n\n_.startsWith('abc', 'b', 1);\n// => true\n
      \n
      \n
      \n\n
      " } ,{ "href":"/template", - "html":"

      template source npm

      \n
      _.template([string=''], [options])
      \n\n

      创建一个预编译模板方法,可以插入数据到模板中 "interpolate" 分隔符相应的位置。\nHTML会在 "escape" 分隔符中转换为相应实体。\n在 "evaluate" 分隔符中允许执行JavaScript代码。\n在模板中可以自由访问变量。\n如果设置了选项对象,则会优先覆盖 _.templateSettings 的值。\n
      \n
      \n注意: 在开发过程中可以使用\nsourceURLs\n便于调试。\n
      \n
      \n了解更多预编译模板的信息查看\nlodash的自定义构建文档\n
      \n
      \n了解更多 Chrome 沙箱扩展的信息查看\nChrome的扩展文档

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        模板字符串

        \n
      2. \n
      3. [options] (Object)

        选项对象

        \n
      4. \n
      5. [options.escape] (RegExp)

        "escape" 分隔符

        \n
      6. \n
      7. [options.evaluate] (RegExp)

        "evaluate" 分隔符

        \n
      8. \n
      9. [options.imports] (Object)

        导入对象到模板中作为自由变量

        \n
      10. \n
      11. [options.interpolate] (RegExp)

        "interpolate" 分隔符

        \n
      12. \n
      13. [options.sourceURL] (string)

        模板编译的来源URL

        \n
      14. \n
      15. [options.variable] (string)

        数据对象的变量名

        \n
      16. \n
      \n

      返回值 (Function)

      \n

      返回编译模板函数

      \n
      \n

      示例

      \n
      // 使用 \"interpolate\" 分隔符创建编译模板\nvar compiled = _.template('hello <%= user %>!');\ncompiled({ 'user': 'fred' });\n// => 'hello fred!'\n\n// 使用 HTML \"escape\" 转义数据的值\nvar compiled = _.template('<b><%- value %></b>');\ncompiled({ 'value': '<script>' });\n// => '<b>&lt;script&gt;</b>'\n\n// 使用 \"evaluate\" 分隔符执行 JavaScript 和 生成HTML代码\nvar compiled = _.template('<% _.forEach(users, function(user) { %><li><%- user %></li><% }); %>');\ncompiled({ 'users': ['fred', 'barney'] });\n// => '<li>fred</li><li>barney</li>'\n\n// 在 \"evaluate\" 分隔符中使用内部的 `print` 函数\nvar compiled = _.template('<% print(\"hello \" + user); %>!');\ncompiled({ 'user': 'barney' });\n// => 'hello barney!'\n\n// 使用 ES 分隔符代替默认的 \"interpolate\" 分隔符\nvar compiled = _.template('hello ${ user }!');\ncompiled({ 'user': 'pebbles' });\n// => 'hello pebbles!'\n\n// 使用自定义的模板分隔符\n_.templateSettings.interpolate = /{{([\\s\\S]+?)}}/g;\nvar compiled = _.template('hello {{ user }}!');\ncompiled({ 'user': 'mustache' });\n// => 'hello mustache!'\n\n// 使用反斜杠符号作为纯文本处理\nvar compiled = _.template('<%= \"\\\\<%- value %\\\\>\" %>');\ncompiled({ 'value': 'ignored' });\n// => '<%- value %>'\n\n// 使用 `imports` 选项导入 `jq` 作为 `jQuery` 的别名\nvar text = '<% jq.each(users, function(user) { %><li><%- user %></li><% }); %>';\nvar compiled = _.template(text, { 'imports': { 'jq': jQuery } });\ncompiled({ 'users': ['fred', 'barney'] });\n// => '<li>fred</li><li>barney</li>'\n\n// 使用 `sourceURL` 选项指定模板的来源URL\nvar compiled = _.template('hello <%= user %>!', { 'sourceURL': '/basic/greeting.jst' });\ncompiled(data);\n// => 在开发工具的 Sources 选项卡 或 Resources 面板中找到 \"greeting.jst\"\n\n// 使用 `variable` 选项确保在编译模板中不声明变量\nvar compiled = _.template('hi <%= data.user %>!', { 'variable': 'data' });\ncompiled.source;\n// => function(data) {\n//   var __t, __p = '';\n//   __p += 'hi ' + ((__t = ( data.user )) == null ? '' : __t) + '!';\n//   return __p;\n// }\n\n// 使用 `source` 特性内联编译模板\n// 便以查看行号、错误信息、堆栈\nfs.writeFileSync(path.join(cwd, 'jst.js'), '\\\n  var JST = {\\\n    \"main\": ' + _.template(mainText).source + '\\\n  };\\\n');\n
      \n
      \n
      \n\n
      " } + "html":"

      template source npm

      \n
      _.template([string=''], [options])
      \n\n

      创建一个预编译模板方法,可以插入数据到模板中 "interpolate" 分隔符相应的位置。\nHTML会在 "escape" 分隔符中转换为相应实体。\n在 "evaluate" 分隔符中允许执行JavaScript代码。\n在模板中可以自由访问变量。\n如果设置了选项对象,则会优先覆盖 _.templateSettings 的值。\n
      \n
      \n注意: 在开发过程中可以使用\nsourceURLs\n便于调试。\n
      \n
      \n了解更多预编译模板的信息查看\nlodash的自定义构建文档\n
      \n
      \n了解更多 Chrome 沙箱扩展的信息查看\nChrome的扩展文档

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        模板字符串

        \n
      2. \n
      3. [options] (Object)

        选项对象

        \n
      4. \n
      5. [options.escape] (RegExp)

        "escape" 分隔符

        \n
      6. \n
      7. [options.evaluate] (RegExp)

        "evaluate" 分隔符

        \n
      8. \n
      9. [options.imports] (Object)

        导入对象到模板中作为自由变量

        \n
      10. \n
      11. [options.interpolate] (RegExp)

        "interpolate" 分隔符

        \n
      12. \n
      13. [options.sourceURL] (string)

        模板编译的来源URL

        \n
      14. \n
      15. [options.variable] (string)

        数据对象的变量名

        \n
      16. \n
      \n

      返回值 (Function)

      \n

      返回编译模板函数

      \n
      \n

      示例

      \n
      // 使用 \"interpolate\" 分隔符创建编译模板\nvar compiled = _.template('hello <%= user %>!');\ncompiled({ 'user': 'fred' });\n// => 'hello fred!'\n\n// 使用 HTML \"escape\" 转义数据的值\nvar compiled = _.template('<b><%- value %></b>');\ncompiled({ 'value': '<script>' });\n// => '<b>&lt;script&gt;</b>'\n\n// 使用 \"evaluate\" 分隔符执行 JavaScript 和 生成HTML代码\nvar compiled = _.template('<% _.forEach(users, function(user) { %><li><%- user %></li><% }); %>');\ncompiled({ 'users': ['fred', 'barney'] });\n// => '<li>fred</li><li>barney</li>'\n\n// 在 \"evaluate\" 分隔符中使用内部的 `print` 函数\nvar compiled = _.template('<% print(\"hello \" + user); %>!');\ncompiled({ 'user': 'barney' });\n// => 'hello barney!'\n\n// 使用 ES 分隔符代替默认的 \"interpolate\" 分隔符\nvar compiled = _.template('hello ${ user }!');\ncompiled({ 'user': 'pebbles' });\n// => 'hello pebbles!'\n\n// 使用自定义的模板分隔符\n_.templateSettings.interpolate = /{{([\\s\\S]+?)}}/g;\nvar compiled = _.template('hello {{ user }}!');\ncompiled({ 'user': 'mustache' });\n// => 'hello mustache!'\n\n// 使用反斜杠符号作为纯文本处理\nvar compiled = _.template('<%= \"\\\\<%- value %\\\\>\" %>');\ncompiled({ 'value': 'ignored' });\n// => '<%- value %>'\n\n// 使用 `imports` 选项导入 `jq` 作为 `jQuery` 的别名\nvar text = '<% jq.each(users, function(user) { %><li><%- user %></li><% }); %>';\nvar compiled = _.template(text, { 'imports': { 'jq': jQuery } });\ncompiled({ 'users': ['fred', 'barney'] });\n// => '<li>fred</li><li>barney</li>'\n\n// 使用 `sourceURL` 选项指定模板的来源URL\nvar compiled = _.template('hello <%= user %>!', { 'sourceURL': '/basic/greeting.jst' });\ncompiled(data);\n// => 在开发工具的 Sources 选项卡 或 Resources 面板中找到 \"greeting.jst\"\n\n// 使用 `variable` 选项确保在编译模板中不声明变量\nvar compiled = _.template('hi <%= data.user %>!', { 'variable': 'data' });\ncompiled.source;\n// => function(data) {\n//   var __t, __p = '';\n//   __p += 'hi ' + ((__t = ( data.user )) == null ? '' : __t) + '!';\n//   return __p;\n// }\n\n// 使用 `source` 特性内联编译模板\n// 便以查看行号、错误信息、堆栈\nfs.writeFileSync(path.join(cwd, 'jst.js'), '\\\n  var JST = {\\\n    \"main\": ' + _.template(mainText).source + '\\\n  };\\\n');\n
      \n
      \n
      \n\n
      " } ,{ "href":"/toLower", - "html":"

      toLower source npm

      \n
      _.toLower([string=''])
      \n\n

      转换整体的字符串为小写

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要转换的字符串

        \n
      2. \n
      \n

      返回值 (string)

      \n

      返回小写的字符串

      \n
      \n

      示例

      \n
      _.toLower('--Foo-Bar');\n// => '--foo-bar'\n\n_.toLower('fooBar');\n// => 'foobar'\n\n_.toLower('__FOO_BAR__');\n// => '__foo_bar__'\n
      \n
      \n
      \n\n
      " } + "html":"

      toLower source npm

      \n
      _.toLower([string=''])
      \n\n

      转换整体的字符串为小写

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要转换的字符串

        \n
      2. \n
      \n

      返回值 (string)

      \n

      返回小写的字符串

      \n
      \n

      示例

      \n
      _.toLower('--Foo-Bar');\n// => '--foo-bar'\n\n_.toLower('fooBar');\n// => 'foobar'\n\n_.toLower('__FOO_BAR__');\n// => '__foo_bar__'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/toUpper", - "html":"

      toUpper source npm

      \n
      _.toUpper([string=''])
      \n\n

      转换整体的字符串为大写

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要转换的字符串

        \n
      2. \n
      \n

      返回值 (string)

      \n

      返回大写的字符串

      \n
      \n

      示例

      \n
      _.toUpper('--foo-bar');\n// => '--FOO-BAR'\n\n_.toUpper('fooBar');\n// => 'FOOBAR'\n\n_.toUpper('__foo_bar__');\n// => '__FOO_BAR__'\n
      \n
      \n
      \n\n
      " } + "html":"

      toUpper source npm

      \n
      _.toUpper([string=''])
      \n\n

      转换整体的字符串为大写

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要转换的字符串

        \n
      2. \n
      \n

      返回值 (string)

      \n

      返回大写的字符串

      \n
      \n

      示例

      \n
      _.toUpper('--foo-bar');\n// => '--FOO-BAR'\n\n_.toUpper('fooBar');\n// => 'FOOBAR'\n\n_.toUpper('__foo_bar__');\n// => '__FOO_BAR__'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/trim", - "html":"

      trim source npm

      \n
      _.trim([string=''], [chars=whitespace])
      \n\n

      从字符串中移除前面和后面的空白 或 指定的字符。

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要处理的字符串

        \n
      2. \n
      3. [chars=whitespace] (string)

        要处理的字符

        \n
      4. \n
      \n

      返回值 (string)

      \n

      返回处理后的字符串

      \n
      \n

      示例

      \n
      _.trim('  abc  ');\n// => 'abc'\n\n_.trim('-_-abc-_-', '_-');\n// => 'abc'\n\n_.map(['  foo  ', '  bar  '], _.trim);\n// => ['foo', 'bar']\n
      \n
      \n
      \n\n
      " } + "html":"

      trim source npm

      \n
      _.trim([string=''], [chars=whitespace])
      \n\n

      从字符串中移除前面和后面的空白 或 指定的字符。

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要处理的字符串

        \n
      2. \n
      3. [chars=whitespace] (string)

        要处理的字符

        \n
      4. \n
      \n

      返回值 (string)

      \n

      返回处理后的字符串

      \n
      \n

      示例

      \n
      _.trim('  abc  ');\n// => 'abc'\n\n_.trim('-_-abc-_-', '_-');\n// => 'abc'\n\n_.map(['  foo  ', '  bar  '], _.trim);\n// => ['foo', 'bar']\n
      \n
      \n
      \n\n
      " } ,{ "href":"/trimEnd", - "html":"

      trimEnd source npm

      \n
      _.trimEnd([string=''], [chars=whitespace])
      \n\n

      移除字符串后面的空白 或 指定的字符。

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要处理的字符串

        \n
      2. \n
      3. [chars=whitespace] (string)

        要处理的字符

        \n
      4. \n
      \n

      返回值 (string)

      \n

      返回处理后的字符串

      \n
      \n

      示例

      \n
      _.trimEnd('  abc  ');\n// => '  abc'\n\n_.trimEnd('-_-abc-_-', '_-');\n// => '-_-abc'\n
      \n
      \n
      \n\n
      " } + "html":"

      trimEnd source npm

      \n
      _.trimEnd([string=''], [chars=whitespace])
      \n\n

      移除字符串后面的空白 或 指定的字符。

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要处理的字符串

        \n
      2. \n
      3. [chars=whitespace] (string)

        要处理的字符

        \n
      4. \n
      \n

      返回值 (string)

      \n

      返回处理后的字符串

      \n
      \n

      示例

      \n
      _.trimEnd('  abc  ');\n// => '  abc'\n\n_.trimEnd('-_-abc-_-', '_-');\n// => '-_-abc'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/trimStart", - "html":"

      trimStart source npm

      \n
      _.trimStart([string=''], [chars=whitespace])
      \n\n

      移除字符串中前面的空白 或 指定的字符。

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要处理的字符串

        \n
      2. \n
      3. [chars=whitespace] (string)

        要处理的字符

        \n
      4. \n
      \n

      返回值 (string)

      \n

      返回处理后的字符串

      \n
      \n

      示例

      \n
      _.trimStart('  abc  ');\n// => 'abc  '\n\n_.trimStart('-_-abc-_-', '_-');\n// => 'abc-_-'\n
      \n
      \n
      \n\n
      " } + "html":"

      trimStart source npm

      \n
      _.trimStart([string=''], [chars=whitespace])
      \n\n

      移除字符串中前面的空白 或 指定的字符。

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要处理的字符串

        \n
      2. \n
      3. [chars=whitespace] (string)

        要处理的字符

        \n
      4. \n
      \n

      返回值 (string)

      \n

      返回处理后的字符串

      \n
      \n

      示例

      \n
      _.trimStart('  abc  ');\n// => 'abc  '\n\n_.trimStart('-_-abc-_-', '_-');\n// => 'abc-_-'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/truncate", - "html":"

      truncate source npm

      \n
      _.truncate([string=''], [options])
      \n\n

      截断字符串,如果字符串超出了限定的最大值。\n被截断的字符串后面会以 omission 代替,omission 默认是 "..."。

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要截断的字符串

        \n
      2. \n
      3. [options] (Object)

        选项对象

        \n
      4. \n
      5. [options.length=30] (number)

        允许的最大长度

        \n
      6. \n
      7. [options.omission='...'] (string)

        超出后的代替字符

        \n
      8. \n
      9. [options.separator] (RegExp|string)

        截断点

        \n
      10. \n
      \n

      返回值 (string)

      \n

      返回截断后的字符串

      \n
      \n

      示例

      \n
      _.truncate('hi-diddly-ho there, neighborino');\n// => 'hi-diddly-ho there, neighbo...'\n\n_.truncate('hi-diddly-ho there, neighborino', {\n  'length': 24,\n  'separator': ' '\n});\n// => 'hi-diddly-ho there,...'\n\n_.truncate('hi-diddly-ho there, neighborino', {\n  'length': 24,\n  'separator': /,? +/\n});\n// => 'hi-diddly-ho there...'\n\n_.truncate('hi-diddly-ho there, neighborino', {\n  'omission': ' [...]'\n});\n// => 'hi-diddly-ho there, neig [...]'\n
      \n
      \n
      \n\n
      " } + "html":"

      truncate source npm

      \n
      _.truncate([string=''], [options])
      \n\n

      截断字符串,如果字符串超出了限定的最大值。\n被截断的字符串后面会以 omission 代替,omission 默认是 "..."。

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要截断的字符串

        \n
      2. \n
      3. [options] (Object)

        选项对象

        \n
      4. \n
      5. [options.length=30] (number)

        允许的最大长度

        \n
      6. \n
      7. [options.omission='...'] (string)

        超出后的代替字符

        \n
      8. \n
      9. [options.separator] (RegExp|string)

        截断点

        \n
      10. \n
      \n

      返回值 (string)

      \n

      返回截断后的字符串

      \n
      \n

      示例

      \n
      _.truncate('hi-diddly-ho there, neighborino');\n// => 'hi-diddly-ho there, neighbo...'\n\n_.truncate('hi-diddly-ho there, neighborino', {\n  'length': 24,\n  'separator': ' '\n});\n// => 'hi-diddly-ho there,...'\n\n_.truncate('hi-diddly-ho there, neighborino', {\n  'length': 24,\n  'separator': /,? +/\n});\n// => 'hi-diddly-ho there...'\n\n_.truncate('hi-diddly-ho there, neighborino', {\n  'omission': ' [...]'\n});\n// => 'hi-diddly-ho there, neig [...]'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/unescape", - "html":"

      unescape source npm

      \n
      _.unescape([string=''])
      \n\n

      反向版 _.escape。\n这个方法转换 HTML 实体 \n&amp;, &lt;, &gt;, &quot;, &#39;, 以及 &#96; 为对应的字符。\n
      \n
      \n注意: 不会转换其他的 HTML 实体,需要转换可以使用类似 he 的第三方库。

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要转换的字符串

        \n
      2. \n
      \n

      返回值 (string)

      \n

      返回转换后的字符串

      \n
      \n

      示例

      \n
      _.unescape('fred, barney, &amp; pebbles');\n// => 'fred, barney, & pebbles'\n
      \n
      \n
      \n\n
      " } + "html":"

      unescape source npm

      \n
      _.unescape([string=''])
      \n\n

      反向版 _.escape。\n这个方法转换 HTML 实体\n&amp;, &lt;, &gt;, &quot;, &#39;, 以及 &#96; 为对应的字符。\n
      \n
      \n注意: 不会转换其他的 HTML 实体,需要转换可以使用类似 he 的第三方库。

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要转换的字符串

        \n
      2. \n
      \n

      返回值 (string)

      \n

      返回转换后的字符串

      \n
      \n

      示例

      \n
      _.unescape('fred, barney, &amp; pebbles');\n// => 'fred, barney, & pebbles'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/upperCase", - "html":"

      upperCase source npm

      \n
      _.upperCase([string=''])
      \n\n

      转换字符串为空格分割的大写单词

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要转换的字符串

        \n
      2. \n
      \n

      返回值 (string)

      \n

      返回大写单词

      \n
      \n

      示例

      \n
      _.upperCase('--foo-bar');\n// => 'FOO BAR'\n\n_.upperCase('fooBar');\n// => 'FOO BAR'\n\n_.upperCase('__foo_bar__');\n// => 'FOO BAR'\n
      \n
      \n
      \n\n
      " } + "html":"

      upperCase source npm

      \n
      _.upperCase([string=''])
      \n\n

      转换字符串为空格分割的大写单词

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要转换的字符串

        \n
      2. \n
      \n

      返回值 (string)

      \n

      返回大写单词

      \n
      \n

      示例

      \n
      _.upperCase('--foo-bar');\n// => 'FOO BAR'\n\n_.upperCase('fooBar');\n// => 'FOO BAR'\n\n_.upperCase('__foo_bar__');\n// => 'FOO BAR'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/upperFirst", - "html":"

      upperFirst source npm

      \n
      _.upperFirst([string=''])
      \n\n

      转换首字母为大写。

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要转换的字符串

        \n
      2. \n
      \n

      返回值 (string)

      \n

      返回转换后的字符串

      \n
      \n

      示例

      \n
      _.upperFirst('fred');\n// => 'Fred'\n\n_.upperFirst('FRED');\n// => 'FRED'\n
      \n
      \n
      \n\n
      " } + "html":"

      upperFirst source npm

      \n
      _.upperFirst([string=''])
      \n\n

      转换首字母为大写。

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要转换的字符串

        \n
      2. \n
      \n

      返回值 (string)

      \n

      返回转换后的字符串

      \n
      \n

      示例

      \n
      _.upperFirst('fred');\n// => 'Fred'\n\n_.upperFirst('FRED');\n// => 'FRED'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/words", - "html":"

      words source npm

      \n
      _.words([string=''], [pattern])
      \n\n

      拆分字符串中的词为数组

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要处理的字符串

        \n
      2. \n
      3. [pattern] (RegExp|string)

        匹配模式

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      然后拆分后的数组

      \n
      \n

      示例

      \n
      _.words('fred, barney, & pebbles');\n// => ['fred', 'barney', 'pebbles']\n\n_.words('fred, barney, & pebbles', /[^, ]+/g);\n// => ['fred', 'barney', '&', 'pebbles']\n
      \n
      \n
      \n\n
      " } + "html":"

      words source npm

      \n
      _.words([string=''], [pattern])
      \n\n

      拆分字符串中的词为数组

      \n
      \n\n

      参数

      \n
        \n
      1. [string=''] (string)

        要处理的字符串

        \n
      2. \n
      3. [pattern] (RegExp|string)

        匹配模式

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      然后拆分后的数组

      \n
      \n

      示例

      \n
      _.words('fred, barney, & pebbles');\n// => ['fred', 'barney', 'pebbles']\n\n_.words('fred, barney, & pebbles', /[^, ]+/g);\n// => ['fred', 'barney', '&', 'pebbles']\n
      \n
      \n
      \n\n
      " } +,{ "href":"/runInContext", + "html":"

      runInContext source npm

      \n
      _.runInContext([context=root])
      \n\n

      创建一个给定上下文对象的原始的 lodash 函数。

      \n
      \n\n

      参数

      \n
        \n
      1. [context=root] (Object)

        上下文对象

        \n
      2. \n
      \n

      返回值 (Function)

      \n

      返回新的 lodash 对象

      \n
      \n

      示例

      \n
      _.mixin({ 'foo': _.constant('foo') });\n\nvar lodash = _.runInContext();\nlodash.mixin({ 'bar': lodash.constant('bar') });\n\n_.isFunction(_.foo);\n// => true\n_.isFunction(_.bar);\n// => false\n\nlodash.isFunction(lodash.foo);\n// => false\nlodash.isFunction(lodash.bar);\n// => true\n\n// 使用 `context` 模拟 `Date#getTime` 调用 `_.now`\nvar mock = _.runInContext({\n  'Date': function() {\n    return { 'getTime': getTimeMock };\n  }\n});\n\n// 或者在 Node.js 中创建一个更高级的 `defer`\nvar defer = _.runInContext({ 'setTimeout': setImmediate }).defer;\n
      \n
      \n
      \n\n
      " } ,{ "href":"/attempt", - "html":"

      attempt source npm

      \n
      _.attempt(func)
      \n\n

      尝试调用函数,返回结果 或者 错误对象。\n任何附加的参数都会在调用时传给函数。

      \n
      \n\n

      参数

      \n
        \n
      1. func (Function)

        要调用的函数

        \n
      2. \n
      \n

      返回值 (*)

      \n

      返回函数结果或者错误对象

      \n
      \n

      示例

      \n
      // 避免因为错误的选择器而抛出\nvar elements = _.attempt(function(selector) {\n  return document.querySelectorAll(selector);\n}, '>_>');\n\nif (_.isError(elements)) {\n  elements = [];\n}\n
      \n
      \n
      \n\n
      " } + "html":"

      attempt source npm

      \n
      _.attempt(func)
      \n\n

      尝试调用函数,返回结果 或者 错误对象。\n任何附加的参数都会在调用时传给函数。

      \n
      \n\n

      参数

      \n
        \n
      1. func (Function)

        要调用的函数

        \n
      2. \n
      \n

      返回值 (*)

      \n

      返回函数结果或者错误对象

      \n
      \n

      示例

      \n
      // 避免因为错误的选择器而抛出\nvar elements = _.attempt(function(selector) {\n  return document.querySelectorAll(selector);\n}, '>_>');\n\nif (_.isError(elements)) {\n  elements = [];\n}\n
      \n
      \n
      \n\n
      " } ,{ "href":"/bindAll", - "html":"

      bindAll source npm

      \n
      _.bindAll(object, methodNames)
      \n\n

      绑定对象的方法到对象本身,覆盖已存在的方法。\n
      \n
      \n注意: 这个方法不会设置 "length" 属性到约束的函数。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要绑定的对象

        \n
      2. \n
      3. methodNames (...(string|string[])

        要绑定的方法名 单独指定或指定在数组中。

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回对象

      \n
      \n

      示例

      \n
      var view = {\n  'label': 'docs',\n  'onClick': function() {\n    console.log('clicked ' + this.label);\n  }\n};\n\n_.bindAll(view, 'onClick');\njQuery(element).on('click', view.onClick);\n// => logs 'clicked docs' when clicked\n
      \n
      \n
      \n\n
      " } + "html":"

      bindAll source npm

      \n
      _.bindAll(object, methodNames)
      \n\n

      绑定对象的方法到对象本身,覆盖已存在的方法。\n
      \n
      \n注意: 这个方法不会设置 "length" 属性到约束的函数。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要绑定的对象

        \n
      2. \n
      3. methodNames (...(string|string[])

        要绑定的方法名 单独指定或指定在数组中。

        \n
      4. \n
      \n

      返回值 (Object)

      \n

      返回对象

      \n
      \n

      示例

      \n
      var view = {\n  'label': 'docs',\n  'onClick': function() {\n    console.log('clicked ' + this.label);\n  }\n};\n\n_.bindAll(view, 'onClick');\njQuery(element).on('click', view.onClick);\n// => logs 'clicked docs' when clicked\n
      \n
      \n
      \n\n
      " } ,{ "href":"/cond", - "html":"

      cond source npm

      \n
      _.cond(pairs)
      \n\n

      创建一个函数。\n这个函数会遍历 pairs,并执行最先返回真值对应的函数,并绑定 this 及传入创建函数的参数。

      \n
      \n\n

      参数

      \n
        \n
      1. pairs (Array)

        判断函数对

        \n
      2. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      var func = _.cond([\n  [_.matches({ 'a': 1 }),           _.constant('matches A')],\n  [_.conforms({ 'b': _.isNumber }), _.constant('matches B')],\n  [_.constant(true),                _.constant('no match')]\n])\n\nfunc({ 'a': 1, 'b': 2 });\n// => 输出:'matches A'\n\nfunc({ 'a': 0, 'b': 1 });\n// => 输出:'matches B'\n\nfunc({ 'a': '1', 'b': '2' });\n// => 输出:'no match'\n
      \n
      \n
      \n\n
      " } + "html":"

      cond source npm

      \n
      _.cond(pairs)
      \n\n

      创建一个函数。\n这个函数会遍历 pairs,并执行最先返回真值对应的函数,并绑定 this 及传入创建函数的参数。

      \n
      \n\n

      参数

      \n
        \n
      1. pairs (Array)

        判断函数对

        \n
      2. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      var func = _.cond([\n  [_.matches({ 'a': 1 }),           _.constant('matches A')],\n  [_.conforms({ 'b': _.isNumber }), _.constant('matches B')],\n  [_.constant(true),                _.constant('no match')]\n])\n\nfunc({ 'a': 1, 'b': 2 });\n// => 输出:'matches A'\n\nfunc({ 'a': 0, 'b': 1 });\n// => 输出:'matches B'\n\nfunc({ 'a': '1', 'b': '2' });\n// => 输出:'no match'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/conforms", - "html":"

      conforms source npm

      \n
      _.conforms(source)
      \n\n

      创建一个函数。\n这个函数会调用 source 的属性名对应的 predicate 与传入对象相对应属性名的值进行 predicate 处理。\n如果都符合返回 true,否则返回 false

      \n
      \n\n

      参数

      \n
        \n
      1. source (Object)

        包含 predicates 属性值的对象

        \n
      2. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      var users = [\n  { 'user': 'barney', 'age': 36 },\n  { 'user': 'fred',   'age': 40 }\n];\n\n_.filter(users, _.conforms({ 'age': _.partial(_.gt, _, 38) }));\n// => [{ 'user': 'fred', 'age': 40 }]\n
      \n
      \n
      \n\n
      " } + "html":"

      conforms source npm

      \n
      _.conforms(source)
      \n\n

      创建一个函数。\n这个函数会调用 source 的属性名对应的 predicate 与传入对象相对应属性名的值进行 predicate 处理。\n如果都符合返回 true,否则返回 false

      \n
      \n\n

      参数

      \n
        \n
      1. source (Object)

        包含 predicates 属性值的对象

        \n
      2. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      var users = [\n  { 'user': 'barney', 'age': 36 },\n  { 'user': 'fred',   'age': 40 }\n];\n\n_.filter(users, _.conforms({ 'age': _.partial(_.gt, _, 38) }));\n// => [{ 'user': 'fred', 'age': 40 }]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/constant", - "html":"

      constant source npm

      \n
      _.constant(value)
      \n\n

      创建一个返回 value 的函数

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要返回的值

        \n
      2. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      var object = { 'user': 'fred' };\nvar getter = _.constant(object);\n\ngetter() === object;\n// => true\n
      \n
      \n
      \n\n
      " } + "html":"

      constant source npm

      \n
      _.constant(value)
      \n\n

      创建一个返回 value 的函数

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要返回的值

        \n
      2. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      var object = { 'user': 'fred' };\nvar getter = _.constant(object);\n\ngetter() === object;\n// => true\n
      \n
      \n
      \n\n
      " } ,{ "href":"/flow", - "html":"

      flow source npm

      \n
      _.flow([funcs])
      \n\n

      创建一个函数。\n返回的结果是调用提供函数的结果,this 会绑定到创建函数。\n每一个连续调用,传入的参数都是前一个函数返回的结果。

      \n
      \n\n

      参数

      \n
        \n
      1. [funcs] (...(Function|Function[])

        要调用的函数

        \n
      2. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      function square(n) {\n  return n * n;\n}\n\nvar addSquare = _.flow(_.add, square);\naddSquare(1, 2);\n// => 9\n
      \n
      \n
      \n\n
      " } + "html":"

      flow source npm

      \n
      _.flow([funcs])
      \n\n

      创建一个函数。\n返回的结果是调用提供函数的结果,this 会绑定到创建函数。\n每一个连续调用,传入的参数都是前一个函数返回的结果。

      \n
      \n\n

      参数

      \n
        \n
      1. [funcs] (...(Function|Function[])

        要调用的函数

        \n
      2. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      function square(n) {\n  return n * n;\n}\n\nvar addSquare = _.flow(_.add, square);\naddSquare(1, 2);\n// => 9\n
      \n
      \n
      \n\n
      " } ,{ "href":"/flowRight", - "html":"

      flowRight source npm

      \n
      _.flowRight([funcs])
      \n\n

      这个方法类似 _.flow,除了它调用函数的顺序是从右往左的。

      \n
      \n\n

      参数

      \n
        \n
      1. [funcs] (...(Function|Function[])

        要调用的函数

        \n
      2. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      function square(n) {\n  return n * n;\n}\n\nvar addSquare = _.flowRight(square, _.add);\naddSquare(1, 2);\n// => 9\n
      \n
      \n
      \n\n
      " } + "html":"

      flowRight source npm

      \n
      _.flowRight([funcs])
      \n\n

      这个方法类似 _.flow,除了它调用函数的顺序是从右往左的。

      \n
      \n\n

      参数

      \n
        \n
      1. [funcs] (...(Function|Function[])

        要调用的函数

        \n
      2. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      function square(n) {\n  return n * n;\n}\n\nvar addSquare = _.flowRight(square, _.add);\naddSquare(1, 2);\n// => 9\n
      \n
      \n
      \n\n
      " } ,{ "href":"/identity", - "html":"

      identity source npm

      \n
      _.identity(value)
      \n\n

      这个方法返回首个提供的参数

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        任何值

        \n
      2. \n
      \n

      返回值 (*)

      \n

      返回 value

      \n
      \n

      示例

      \n
      var object = { 'user': 'fred' };\n\n_.identity(object) === object;\n// => true\n
      \n
      \n
      \n\n
      " } + "html":"

      identity source npm

      \n
      _.identity(value)
      \n\n

      这个方法返回首个提供的参数

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        任何值

        \n
      2. \n
      \n

      返回值 (*)

      \n

      返回 value

      \n
      \n

      示例

      \n
      var object = { 'user': 'fred' };\n\n_.identity(object) === object;\n// => true\n
      \n
      \n
      \n\n
      " } ,{ "href":"/iteratee", - "html":"

      iteratee source npm

      \n
      _.iteratee([func=_.identity])
      \n\n

      创建一个调用 func 的函数。\n如果 func 是一个属性名,传入包含这个属性名的对象,回调返回对应属性名的值。\n如果 func 是一个对象,传入的元素有相同的对象属性,回调返回 true。\n其他情况返回 false

      \n
      \n\n

      参数

      \n
        \n
      1. [func=_.identity] (*)

        转换成 callback 的值

        \n
      2. \n
      \n

      返回值 (Function)

      \n

      返回 callback.

      \n
      \n

      示例

      \n
      var users = [\n  { 'user': 'barney', 'age': 36 },\n  { 'user': 'fred',   'age': 40 }\n];\n\n// 使用 wrap 创建一个自定义回调速写\n_.iteratee = _.wrap(_.iteratee, function(callback, func, thisArg) {\n  var match = /^(.+?)__([gl]t)(.+)$/.exec(func);\n  if (!match) {\n    return callback(func, thisArg);\n  }\n  return function(object) {\n    return match[2] == 'gt'\n      ? object[match[1]] > match[3]\n      : object[match[1]] < match[3];\n  };\n});\n\n_.filter(users, 'age__gt36');\n// => [{ 'user': 'fred', 'age': 40 }]\n
      \n
      \n
      \n\n
      " } + "html":"

      iteratee source npm

      \n
      _.iteratee([func=_.identity])
      \n\n

      创建一个调用 func 的函数。\n如果 func 是一个属性名,传入包含这个属性名的对象,回调返回对应属性名的值。\n如果 func 是一个对象,传入的元素有相同的对象属性,回调返回 true。\n其他情况返回 false

      \n
      \n\n

      参数

      \n
        \n
      1. [func=_.identity] (*)

        转换成 callback 的值

        \n
      2. \n
      \n

      返回值 (Function)

      \n

      返回 callback.

      \n
      \n

      示例

      \n
      var users = [\n  { 'user': 'barney', 'age': 36 },\n  { 'user': 'fred',   'age': 40 }\n];\n\n// 使用 wrap 创建一个自定义回调速写\n_.iteratee = _.wrap(_.iteratee, function(callback, func, thisArg) {\n  var match = /^(.+?)__([gl]t)(.+)$/.exec(func);\n  if (!match) {\n    return callback(func, thisArg);\n  }\n  return function(object) {\n    return match[2] == 'gt'\n      ? object[match[1]] > match[3]\n      : object[match[1]] < match[3];\n  };\n});\n\n_.filter(users, 'age__gt36');\n// => [{ 'user': 'fred', 'age': 40 }]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/matches", - "html":"

      matches source npm

      \n
      _.matches(source)
      \n\n

      创建一个深比较的方法来比较给定的对象和 source 对象。\n如果给定的对象拥有相同的属性值返回 true,否则返回 false\n
      \n
      \n注意: 这个方法支持以 _.isEqual 的方式比较相同的值。

      \n
      \n\n

      参数

      \n
        \n
      1. source (Object)

        要匹配的源对象

        \n
      2. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      var users = [\n  { 'user': 'barney', 'age': 36, 'active': true },\n  { 'user': 'fred',   'age': 40, 'active': false }\n];\n\n_.filter(users, _.matches({ 'age': 40, 'active': false }));\n// => [{ 'user': 'fred', 'age': 40, 'active': false }]\n
      \n
      \n
      \n\n
      " } + "html":"

      matches source npm

      \n
      _.matches(source)
      \n\n

      创建一个深比较的方法来比较给定的对象和 source 对象。\n如果给定的对象拥有相同的属性值返回 true,否则返回 false\n
      \n
      \n注意: 这个方法支持以 _.isEqual 的方式比较相同的值。

      \n
      \n\n

      参数

      \n
        \n
      1. source (Object)

        要匹配的源对象

        \n
      2. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      var users = [\n  { 'user': 'barney', 'age': 36, 'active': true },\n  { 'user': 'fred',   'age': 40, 'active': false }\n];\n\n_.filter(users, _.matches({ 'age': 40, 'active': false }));\n// => [{ 'user': 'fred', 'age': 40, 'active': false }]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/matchesProperty", - "html":"

      matchesProperty source npm

      \n
      _.matchesProperty(path, srcValue)
      \n\n

      创建一个深比较的方法来比较给定对象的 path 的值是否是 srcValue。\n如果是返回 true,否则返回 false\n
      \n
      \n注意: 这个方法支持以 _.isEqual 的方式比较相同的值。

      \n
      \n\n

      参数

      \n
        \n
      1. path (Array|string)

        给定对象的属性路径名

        \n
      2. \n
      3. srcValue (*)

        要匹配的值

        \n
      4. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      var users = [\n  { 'user': 'barney' },\n  { 'user': 'fred' }\n];\n\n_.find(users, _.matchesProperty('user', 'fred'));\n// => { 'user': 'fred' }\n
      \n
      \n
      \n\n
      " } + "html":"

      matchesProperty source npm

      \n
      _.matchesProperty(path, srcValue)
      \n\n

      创建一个深比较的方法来比较给定对象的 path 的值是否是 srcValue。\n如果是返回 true,否则返回 false\n
      \n
      \n注意: 这个方法支持以 _.isEqual 的方式比较相同的值。

      \n
      \n\n

      参数

      \n
        \n
      1. path (Array|string)

        给定对象的属性路径名

        \n
      2. \n
      3. srcValue (*)

        要匹配的值

        \n
      4. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      var users = [\n  { 'user': 'barney' },\n  { 'user': 'fred' }\n];\n\n_.find(users, _.matchesProperty('user', 'fred'));\n// => { 'user': 'fred' }\n
      \n
      \n
      \n\n
      " } ,{ "href":"/method", - "html":"

      method source npm

      \n
      _.method(path, [args])
      \n\n

      创建一个调用给定对象 path 上的函数。\n任何附加的参数都会传入这个调用函数中。

      \n
      \n\n

      参数

      \n
        \n
      1. path (Array|string)

        调用函数所在对象的路径

        \n
      2. \n
      3. [args] (...*)

        传递给调用函数的参数

        \n
      4. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      var objects = [\n  { 'a': { 'b': { 'c': _.constant(2) } } },\n  { 'a': { 'b': { 'c': _.constant(1) } } }\n];\n\n_.map(objects, _.method('a.b.c'));\n// => [2, 1]\n\n_.invokeMap(_.sortBy(objects, _.method(['a', 'b', 'c'])), 'a.b.c');\n// => [1, 2]\n
      \n
      \n
      \n\n
      " } + "html":"

      method source npm

      \n
      _.method(path, [args])
      \n\n

      创建一个调用给定对象 path 上的函数。\n任何附加的参数都会传入这个调用函数中。

      \n
      \n\n

      参数

      \n
        \n
      1. path (Array|string)

        调用函数所在对象的路径

        \n
      2. \n
      3. [args] (...*)

        传递给调用函数的参数

        \n
      4. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      var objects = [\n  { 'a': { 'b': { 'c': _.constant(2) } } },\n  { 'a': { 'b': { 'c': _.constant(1) } } }\n];\n\n_.map(objects, _.method('a.b.c'));\n// => [2, 1]\n\n_.invokeMap(_.sortBy(objects, _.method(['a', 'b', 'c'])), 'a.b.c');\n// => [1, 2]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/methodOf", - "html":"

      methodOf source npm

      \n
      _.methodOf(object, [args])
      \n\n

      反向版 _.method。\n这个创建一个函数调用给定 objectpath 上的方法,\n任何附加的参数都会传入这个调用函数中。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要检索的对象

        \n
      2. \n
      3. [args] (...*)

        传递给调用函数的参数

        \n
      4. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      var array = _.times(3, _.constant),\n    object = { 'a': array, 'b': array, 'c': array };\n\n_.map(['a[2]', 'c[0]'], _.methodOf(object));\n// => [2, 0]\n\n_.map([['a', '2'], ['c', '0']], _.methodOf(object));\n// => [2, 0]\n
      \n
      \n
      \n\n
      " } + "html":"

      methodOf source npm

      \n
      _.methodOf(object, [args])
      \n\n

      反向版 _.method。\n这个创建一个函数调用给定 objectpath 上的方法,\n任何附加的参数都会传入这个调用函数中。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要检索的对象

        \n
      2. \n
      3. [args] (...*)

        传递给调用函数的参数

        \n
      4. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      var array = _.times(3, _.constant),\n    object = { 'a': array, 'b': array, 'c': array };\n\n_.map(['a[2]', 'c[0]'], _.methodOf(object));\n// => [2, 0]\n\n_.map([['a', '2'], ['c', '0']], _.methodOf(object));\n// => [2, 0]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/mixin", - "html":"

      mixin source npm

      \n
      _.mixin([object=lodash], source, [options])
      \n\n

      添加来源对象自身的所有可枚举函数属性到目标对象。\n如果 object 是个函数,那么函数方法将被添加到原型链上。\n
      \n
      \n注意: 使用 _.runInContext 来创建原始的 lodash 函数来避免修改造成的冲突。

      \n
      \n\n

      参数

      \n
        \n
      1. [object=lodash] (Function|Object)

        目标对象

        \n
      2. \n
      3. source (Object)

        来源对象

        \n
      4. \n
      5. [options] (Object)

        选项对象

        \n
      6. \n
      7. [options.chain=true] (boolean)

        是否开启链式操作

        \n
      8. \n
      \n

      返回值 (Function|Object)

      \n

      返回对象

      \n
      \n

      示例

      \n
      function vowels(string) {\n  return _.filter(string, function(v) {\n    return /[aeiou]/i.test(v);\n  });\n}\n\n_.mixin({ 'vowels': vowels });\n_.vowels('fred');\n// => ['e']\n\n_('fred').vowels().value();\n// => ['e']\n\n_.mixin({ 'vowels': vowels }, { 'chain': false });\n_('fred').vowels();\n// => ['e']\n
      \n
      \n
      \n\n
      " } + "html":"

      mixin source npm

      \n
      _.mixin([object=lodash], source, [options])
      \n\n

      添加来源对象自身的所有可枚举函数属性到目标对象。\n如果 object 是个函数,那么函数方法将被添加到原型链上。\n
      \n
      \n注意: 使用 _.runInContext 来创建原始的 lodash 函数来避免修改造成的冲突。

      \n
      \n\n

      参数

      \n
        \n
      1. [object=lodash] (Function|Object)

        目标对象

        \n
      2. \n
      3. source (Object)

        来源对象

        \n
      4. \n
      5. [options] (Object)

        选项对象

        \n
      6. \n
      7. [options.chain=true] (boolean)

        是否开启链式操作

        \n
      8. \n
      \n

      返回值 (Function|Object)

      \n

      返回对象

      \n
      \n

      示例

      \n
      function vowels(string) {\n  return _.filter(string, function(v) {\n    return /[aeiou]/i.test(v);\n  });\n}\n\n_.mixin({ 'vowels': vowels });\n_.vowels('fred');\n// => ['e']\n\n_('fred').vowels().value();\n// => ['e']\n\n_.mixin({ 'vowels': vowels }, { 'chain': false });\n_('fred').vowels();\n// => ['e']\n
      \n
      \n
      \n\n
      " } ,{ "href":"/noConflict", - "html":"

      noConflict source npm

      \n
      _.noConflict()
      \n\n

      释放 _ 为原来的值,并返回一个 lodash 的引用

      \n
      \n\n

      返回值 (Function)

      \n

      返回 lodash 函数

      \n
      \n

      示例

      \n
      var lodash = _.noConflict();\n
      \n
      \n
      \n\n
      " } + "html":"

      noConflict source npm

      \n
      _.noConflict()
      \n\n

      释放 _ 为原来的值,并返回一个 lodash 的引用

      \n
      \n\n

      返回值 (Function)

      \n

      返回 lodash 函数

      \n
      \n

      示例

      \n
      var lodash = _.noConflict();\n
      \n
      \n
      \n\n
      " } ,{ "href":"/noop", - "html":"

      noop source npm

      \n
      _.noop()
      \n\n

      无论传递什么参数,都返回 undefined

      \n
      \n\n

      示例

      \n
      var object = { 'user': 'fred' };\n\n_.noop(object) === undefined;\n// => true\n
      \n
      \n
      \n\n
      " } + "html":"

      noop source npm

      \n
      _.noop()
      \n\n

      无论传递什么参数,都返回 undefined

      \n
      \n\n

      示例

      \n
      var object = { 'user': 'fred' };\n\n_.noop(object) === undefined;\n// => true\n
      \n
      \n
      \n\n
      " } ,{ "href":"/nthArg", - "html":"

      nthArg source npm

      \n
      _.nthArg([n=0])
      \n\n

      创建一个返回第 N 个参数的函数。

      \n
      \n\n

      参数

      \n
        \n
      1. [n=0] (number)

        要返回参数的索引

        \n
      2. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      var func = _.nthArg(1);\n\nfunc('a', 'b', 'c');\n// => 'b'\n
      \n
      \n
      \n\n
      " } + "html":"

      nthArg source npm

      \n
      _.nthArg([n=0])
      \n\n

      创建一个返回第 N 个参数的函数。

      \n
      \n\n

      参数

      \n
        \n
      1. [n=0] (number)

        要返回参数的索引

        \n
      2. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      var func = _.nthArg(1);\n\nfunc('a', 'b', 'c');\n// => 'b'\n
      \n
      \n
      \n\n
      " } ,{ "href":"/over", - "html":"

      over source npm

      \n
      _.over(iteratees)
      \n\n

      创建一个传入提供的参数的函数并调用 iteratees 返回结果的函数。

      \n
      \n\n

      参数

      \n
        \n
      1. iteratees (...(Function|Function[])

        要调用的 iteratees

        \n
      2. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      var func = _.over(Math.max, Math.min);\n\nfunc(1, 2, 3, 4);\n// => [4, 1]\n
      \n
      \n
      \n\n
      " } + "html":"

      over source npm

      \n
      _.over(iteratees)
      \n\n

      创建一个传入提供的参数的函数并调用 iteratees 返回结果的函数。

      \n
      \n\n

      参数

      \n
        \n
      1. iteratees (...(Function|Function[])

        要调用的 iteratees

        \n
      2. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      var func = _.over(Math.max, Math.min);\n\nfunc(1, 2, 3, 4);\n// => [4, 1]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/overEvery", - "html":"

      overEvery source npm

      \n
      _.overEvery(predicates)
      \n\n

      创建一个传入提供的参数的函数并调用 iteratees 判断是否 全部 都为真值的函数。

      \n
      \n\n

      参数

      \n
        \n
      1. predicates (...(Function|Function[])

        要调用的 predicates

        \n
      2. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      var func = _.overEvery(Boolean, isFinite);\n\nfunc('1');\n// => true\n\nfunc(null);\n// => false\n\nfunc(NaN);\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      overEvery source npm

      \n
      _.overEvery(predicates)
      \n\n

      创建一个传入提供的参数的函数并调用 iteratees 判断是否 全部 都为真值的函数。

      \n
      \n\n

      参数

      \n
        \n
      1. predicates (...(Function|Function[])

        要调用的 predicates

        \n
      2. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      var func = _.overEvery(Boolean, isFinite);\n\nfunc('1');\n// => true\n\nfunc(null);\n// => false\n\nfunc(NaN);\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/overSome", - "html":"

      overSome source npm

      \n
      _.overSome(predicates)
      \n\n

      创建一个传入提供的参数的函数并调用 iteratees 判断是否 存在 有真值的函数。

      \n
      \n\n

      参数

      \n
        \n
      1. predicates (...(Function|Function[])

        要调用的 predicates

        \n
      2. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      var func = _.overSome(Boolean, isFinite);\n\nfunc('1');\n// => true\n\nfunc(null);\n// => true\n\nfunc(NaN);\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      overSome source npm

      \n
      _.overSome(predicates)
      \n\n

      创建一个传入提供的参数的函数并调用 iteratees 判断是否 存在 有真值的函数。

      \n
      \n\n

      参数

      \n
        \n
      1. predicates (...(Function|Function[])

        要调用的 predicates

        \n
      2. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      var func = _.overSome(Boolean, isFinite);\n\nfunc('1');\n// => true\n\nfunc(null);\n// => true\n\nfunc(NaN);\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/property", - "html":"

      property source npm

      \n
      _.property(path)
      \n\n

      创建一个返回给定对象的 path 的值的函数。

      \n
      \n\n

      参数

      \n
        \n
      1. path (Array|string)

        要得到值的属性路径

        \n
      2. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      var objects = [\n  { 'a': { 'b': { 'c': 2 } } },\n  { 'a': { 'b': { 'c': 1 } } }\n];\n\n_.map(objects, _.property('a.b.c'));\n// => [2, 1]\n\n_.map(_.sortBy(objects, _.property(['a', 'b', 'c'])), 'a.b.c');\n// => [1, 2]\n
      \n
      \n
      \n\n
      " } + "html":"

      property source npm

      \n
      _.property(path)
      \n\n

      创建一个返回给定对象的 path 的值的函数。

      \n
      \n\n

      参数

      \n
        \n
      1. path (Array|string)

        要得到值的属性路径

        \n
      2. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      var objects = [\n  { 'a': { 'b': { 'c': 2 } } },\n  { 'a': { 'b': { 'c': 1 } } }\n];\n\n_.map(objects, _.property('a.b.c'));\n// => [2, 1]\n\n_.map(_.sortBy(objects, _.property(['a', 'b', 'c'])), 'a.b.c');\n// => [1, 2]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/propertyOf", - "html":"

      propertyOf source npm

      \n
      _.propertyOf(object)
      \n\n

      反向版 _.property。\n这个方法创建的函数返回给定 path 在对象上的值。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要检索的对象

        \n
      2. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      var array = [0, 1, 2],\n    object = { 'a': array, 'b': array, 'c': array };\n\n_.map(['a[2]', 'c[0]'], _.propertyOf(object));\n// => [2, 0]\n\n_.map([['a', '2'], ['c', '0']], _.propertyOf(object));\n// => [2, 0]\n
      \n
      \n
      \n\n
      " } + "html":"

      propertyOf source npm

      \n
      _.propertyOf(object)
      \n\n

      反向版 _.property。\n这个方法创建的函数返回给定 path 在对象上的值。

      \n
      \n\n

      参数

      \n
        \n
      1. object (Object)

        要检索的对象

        \n
      2. \n
      \n

      返回值 (Function)

      \n

      返回新的函数

      \n
      \n

      示例

      \n
      var array = [0, 1, 2],\n    object = { 'a': array, 'b': array, 'c': array };\n\n_.map(['a[2]', 'c[0]'], _.propertyOf(object));\n// => [2, 0]\n\n_.map([['a', '2'], ['c', '0']], _.propertyOf(object));\n// => [2, 0]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/range", - "html":"

      range source npm

      \n
      _.range([start=0], end, [step=1])
      \n\n

      创建一个包含从 startend,但不包含 end 本身范围数字的数组。\n如果 start 是负数,而 endstep 没有指定,那么 step-1 为开始。\n如果 end 没有指定,start 设置为 0。\n如果 end 小于 start,会创建一个空数组,除非指定了 step。\n
      \n
      \n注意: JavaScript 遵循 IEEE-754 标准处理无法预料的浮点数结果。

      \n
      \n\n

      参数

      \n
        \n
      1. [start=0] (number)

        开始的范围

        \n
      2. \n
      3. end (number)

        结束的范围

        \n
      4. \n
      5. [step=1] (number)

        范围的增量 或者 减量

        \n
      6. \n
      \n

      返回值 (Array)

      \n

      返回范围内数字组成的新数组

      \n
      \n

      示例

      \n
      _.range(4);\n// => [0, 1, 2, 3]\n\n_.range(-4);\n// => [0, -1, -2, -3]\n\n_.range(1, 5);\n// => [1, 2, 3, 4]\n\n_.range(0, 20, 5);\n// => [0, 5, 10, 15]\n\n_.range(0, -4, -1);\n// => [0, -1, -2, -3]\n\n_.range(1, 4, 0);\n// => [1, 1, 1]\n\n_.range(0);\n// => []\n
      \n
      \n
      \n\n
      " } + "html":"

      range source npm

      \n
      _.range([start=0], end, [step=1])
      \n\n

      创建一个包含从 startend,但不包含 end 本身范围数字的数组。\n如果 start 是负数,而 endstep 没有指定,那么 step-1 为开始。\n如果 end 没有指定,start 设置为 0。\n如果 end 小于 start,会创建一个空数组,除非指定了 step。\n
      \n
      \n注意: JavaScript 遵循 IEEE-754 标准处理无法预料的浮点数结果。

      \n
      \n\n

      参数

      \n
        \n
      1. [start=0] (number)

        开始的范围

        \n
      2. \n
      3. end (number)

        结束的范围

        \n
      4. \n
      5. [step=1] (number)

        范围的增量 或者 减量

        \n
      6. \n
      \n

      返回值 (Array)

      \n

      返回范围内数字组成的新数组

      \n
      \n

      示例

      \n
      _.range(4);\n// => [0, 1, 2, 3]\n\n_.range(-4);\n// => [0, -1, -2, -3]\n\n_.range(1, 5);\n// => [1, 2, 3, 4]\n\n_.range(0, 20, 5);\n// => [0, 5, 10, 15]\n\n_.range(0, -4, -1);\n// => [0, -1, -2, -3]\n\n_.range(1, 4, 0);\n// => [1, 1, 1]\n\n_.range(0);\n// => []\n
      \n
      \n
      \n\n
      " } ,{ "href":"/rangeRight", - "html":"

      rangeRight source npm

      \n
      _.rangeRight([start=0], end, [step=1])
      \n\n

      这个方法类似 _.range,\n除了它是降序生成值的。

      \n
      \n\n

      参数

      \n
        \n
      1. [start=0] (number)

        开始的范围

        \n
      2. \n
      3. end (number)

        结束的范围

        \n
      4. \n
      5. [step=1] (number)

        范围的增量 或者 减量

        \n
      6. \n
      \n

      返回值 (Array)

      \n

      返回范围内数字组成的新数组

      \n
      \n

      示例

      \n
      _.rangeRight(4);\n// => [3, 2, 1, 0]\n\n_.rangeRight(-4);\n// => [-3, -2, -1, 0]\n\n_.rangeRight(1, 5);\n// => [4, 3, 2, 1]\n\n_.rangeRight(0, 20, 5);\n// => [15, 10, 5, 0]\n\n_.rangeRight(0, -4, -1);\n// => [-3, -2, -1, 0]\n\n_.rangeRight(1, 4, 0);\n// => [1, 1, 1]\n\n_.rangeRight(0);\n// => []\n
      \n
      \n
      \n\n
      " } -,{ "href":"/runInContext", - "html":"

      runInContext source npm

      \n
      _.runInContext([context=root])
      \n\n

      创建一个给定上下文对象的原始的 lodash 函数。

      \n
      \n\n

      参数

      \n
        \n
      1. [context=root] (Object)

        上下文对象

        \n
      2. \n
      \n

      返回值 (Function)

      \n

      返回新的 lodash 对象

      \n
      \n

      示例

      \n
      _.mixin({ 'foo': _.constant('foo') });\n\nvar lodash = _.runInContext();\nlodash.mixin({ 'bar': lodash.constant('bar') });\n\n_.isFunction(_.foo);\n// => true\n_.isFunction(_.bar);\n// => false\n\nlodash.isFunction(lodash.foo);\n// => false\nlodash.isFunction(lodash.bar);\n// => true\n\n// 使用 `context` 模拟 `Date#getTime` 调用 `_.now`\nvar mock = _.runInContext({\n  'Date': function() {\n    return { 'getTime': getTimeMock };\n  }\n});\n\n// 或者在 Node.js 中创建一个更高级的 `defer`\nvar defer = _.runInContext({ 'setTimeout': setImmediate }).defer;\n
      \n
      \n
      \n\n
      " } + "html":"

      rangeRight source npm

      \n
      _.rangeRight([start=0], end, [step=1])
      \n\n

      这个方法类似 _.range,\n除了它是降序生成值的。

      \n
      \n\n

      参数

      \n
        \n
      1. [start=0] (number)

        开始的范围

        \n
      2. \n
      3. end (number)

        结束的范围

        \n
      4. \n
      5. [step=1] (number)

        范围的增量 或者 减量

        \n
      6. \n
      \n

      返回值 (Array)

      \n

      返回范围内数字组成的新数组

      \n
      \n

      示例

      \n
      _.rangeRight(4);\n// => [3, 2, 1, 0]\n\n_.rangeRight(-4);\n// => [-3, -2, -1, 0]\n\n_.rangeRight(1, 5);\n// => [4, 3, 2, 1]\n\n_.rangeRight(0, 20, 5);\n// => [15, 10, 5, 0]\n\n_.rangeRight(0, -4, -1);\n// => [-3, -2, -1, 0]\n\n_.rangeRight(1, 4, 0);\n// => [1, 1, 1]\n\n_.rangeRight(0);\n// => []\n
      \n
      \n
      \n\n
      " } ,{ "href":"/times", - "html":"

      times source npm

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

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

      \n
      \n\n

      参数

      \n
        \n
      1. n (number)

        要调用 iteratee 的次数

        \n
      2. \n
      3. [iteratee=_.identity] (Function)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回调用结果的数组

      \n
      \n

      示例

      \n
      _.times(3, String);\n// => ['0', '1', '2']\n\n _.times(4, _.constant(true));\n// => [true, true, true, true]\n
      \n
      \n
      \n\n
      " } + "html":"

      times source npm

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

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

      \n
      \n\n

      参数

      \n
        \n
      1. n (number)

        要调用 iteratee 的次数

        \n
      2. \n
      3. [iteratee=_.identity] (Function)

        这个函数会处理每一个元素

        \n
      4. \n
      \n

      返回值 (Array)

      \n

      返回调用结果的数组

      \n
      \n

      示例

      \n
      _.times(3, String);\n// => ['0', '1', '2']\n\n _.times(4, _.constant(true));\n// => [true, true, true, true]\n
      \n
      \n
      \n\n
      " } ,{ "href":"/toPath", - "html":"

      toPath source npm

      \n
      _.toPath(value)
      \n\n

      创建 value 为属性路径的数组

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要转换的值

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回包含属性路径的数组

      \n
      \n

      示例

      \n
      _.toPath('a.b.c');\n// => ['a', 'b', 'c']\n\n_.toPath('a[0].b.c');\n// => ['a', '0', 'b', 'c']\n\nvar path = ['a', 'b', 'c'],\n    newPath = _.toPath(path);\n\nconsole.log(newPath);\n// => ['a', 'b', 'c']\n\nconsole.log(path === newPath);\n// => false\n
      \n
      \n
      \n\n
      " } + "html":"

      toPath source npm

      \n
      _.toPath(value)
      \n\n

      创建 value 为属性路径的数组

      \n
      \n\n

      参数

      \n
        \n
      1. value (*)

        要转换的值

        \n
      2. \n
      \n

      返回值 (Array)

      \n

      返回包含属性路径的数组

      \n
      \n

      示例

      \n
      _.toPath('a.b.c');\n// => ['a', 'b', 'c']\n\n_.toPath('a[0].b.c');\n// => ['a', '0', 'b', 'c']\n\nvar path = ['a', 'b', 'c'],\n    newPath = _.toPath(path);\n\nconsole.log(newPath);\n// => ['a', 'b', 'c']\n\nconsole.log(path === newPath);\n// => false\n
      \n
      \n
      \n\n
      " } ,{ "href":"/uniqueId", - "html":"

      uniqueId source npm

      \n
      _.uniqueId([prefix])
      \n\n

      创建唯一ID。\n如果提供了 prefix,会被添加到ID前缀上。

      \n
      \n\n

      参数

      \n
        \n
      1. [prefix] (string)

        要添加到ID前缀的值

        \n
      2. \n
      \n

      返回值 (string)

      \n

      返回唯一ID

      \n
      \n

      示例

      \n
      _.uniqueId('contact_');\n// => 'contact_104'\n\n_.uniqueId();\n// => '105'\n
      \n
      \n
      \n\n
      " } + "html":"

      uniqueId source npm

      \n
      _.uniqueId([prefix])
      \n\n

      创建唯一ID。\n如果提供了 prefix,会被添加到ID前缀上。

      \n
      \n\n

      参数

      \n
        \n
      1. [prefix] (string)

        要添加到ID前缀的值

        \n
      2. \n
      \n

      返回值 (string)

      \n

      返回唯一ID

      \n
      \n

      示例

      \n
      _.uniqueId('contact_');\n// => 'contact_104'\n\n_.uniqueId();\n// => '105'\n
      \n
      \n
      \n\n
      " } ] \ No newline at end of file diff --git a/parseInt.html b/parseInt.html index 10a8374..814311a 100644 --- a/parseInt.html +++ b/parseInt.html @@ -119,7 +119,8 @@
    • xorWith
    • zip
    • zipObject
    • -
    • zipWith
    • +
    • zipObjectDeep
    • +
    • zipWith
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
    • attempt
    • @@ -380,7 +384,6 @@
    • propertyOf
    • range
    • rangeRight
    • -
    • runInContext
    • times
    • toPath
    • uniqueId
    • @@ -392,7 +395,7 @@
      -

      pick source npm

      +

      pick source npm

      _.pick(object, [props])

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

      @@ -409,10 +412,10 @@

      返回值 (Object)

      返回新对象

      示例

      -
      var object = { 'user': 'fred', 'age': 40 };
      +    
      var object = { 'a': 1, 'b': '2', 'c': 3 };
       
      -_.pick(object, 'user');
      -// => { 'user': 'fred' }
      +_.pick(object, ['a', 'c']);
      +// => { 'a': 1, 'c': 3 }
       
      diff --git a/pickBy.html b/pickBy.html index 466656c..84ed76f 100644 --- a/pickBy.html +++ b/pickBy.html @@ -119,7 +119,8 @@
    • xorWith
    • zip
    • zipObject
    • -
    • zipWith
    • +
    • zipObjectDeep
    • +
    • zipWith
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
    • attempt
    • @@ -380,7 +384,6 @@
    • propertyOf
    • range
    • rangeRight
    • -
    • runInContext
    • times
    • toPath
    • uniqueId
    • @@ -392,7 +395,7 @@
      -

      pickBy source npm

      +

      pickBy source npm

      _.pickBy(object, [predicate=_.identity])

      创建一个从 object 中经 predicate 判断为真值的属性为对象。 @@ -410,10 +413,10 @@

      返回值 (Object)

      返回新对象

      示例

      -
      var object = { 'user': 'fred', 'age': 40 };
      +    
      var object = { 'a': 1, 'b': '2', 'c': 3 };
       
       _.pickBy(object, _.isNumber);
      -// => { 'age': 40 }
      +// => { 'a': 1, 'c': 3 }
       
      diff --git a/property.html b/property.html index 6623b85..c41e6a9 100644 --- a/property.html +++ b/property.html @@ -119,7 +119,8 @@
    • xorWith
    • zip
    • zipObject
    • -
    • zipWith
    • +
    • zipObjectDeep
    • +
    • zipWith
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
    • attempt
    • @@ -380,7 +384,6 @@
    • propertyOf
    • range
    • rangeRight
    • -
    • runInContext
    • times
    • toPath
    • uniqueId
    • @@ -392,7 +395,7 @@
      -

      reject source npm

      +

      reject source npm

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

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

      @@ -409,27 +412,25 @@

      返回值 (Array)

      返回过滤后的新数组

      示例

      -
      var resolve = _.partial(_.map, _, 'user');
      -
      -var users = [
      +    
      var users = [
         { 'user': 'barney', 'age': 36, 'active': false },
         { 'user': 'fred',   'age': 40, 'active': true }
       ];
       
      -resolve( _.reject(users, function(o) { return !o.active; }) );
      -// => ['fred']
      +_.reject(users, function(o) { return !o.active; });
      +// => objects for ['fred']
       
      -// 使用了 `_.matches` 的回调结果
      -resolve( _.reject(users, { 'age': 40, 'active': true }) );
      -// => ['barney']
      +// 使用了 `_.matches` iteratee 的结果
      +_.reject(users, { 'age': 40, 'active': true });
      +// => objects for ['barney']
       
      -// 使用了 `_.matchesProperty` 的回调结果
      -resolve( _.reject(users, ['active', false]) );
      -// => ['fred']
      +// 使用了 `_.matchesProperty` iteratee 的结果
      +_.reject(users, ['active', false]);
      +// => objects for ['fred']
       
      -// 使用了 `_.property` 的回调结果
      -resolve( _.reject(users, 'active') );
      -// => ['barney']
      +// 使用了 `_.property` iteratee 的结果
      +_.reject(users, 'active');
      +// => objects for ['barney']
       
      diff --git a/remove.html b/remove.html index accaedc..7a3f79a 100644 --- a/remove.html +++ b/remove.html @@ -119,7 +119,8 @@
    • xorWith
    • zip
    • zipObject
    • -
    • zipWith
    • +
    • zipObjectDeep
    • +
    • zipWith
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
    • attempt
    • @@ -380,7 +384,6 @@
    • propertyOf
    • range
    • rangeRight
    • -
    • runInContext
    • times
    • toPath
    • uniqueId
    • @@ -392,7 +395,7 @@
      -

      shuffle source npm

      +

      shuffle source npm

      _.shuffle(collection)

      创建一个被打乱元素的集合。 diff --git a/sitemap.xml b/sitemap.xml index 45f82a1..ed114f8 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -64,6 +64,7 @@ http://lodash.think2011.net/xorWith http://lodash.think2011.net/zip http://lodash.think2011.net/zipObject +http://lodash.think2011.net/zipObjectDeep http://lodash.think2011.net/zipWith http://lodash.think2011.net/_ http://lodash.think2011.net/chain @@ -183,7 +184,6 @@ http://lodash.think2011.net/subtract http://lodash.think2011.net/sum http://lodash.think2011.net/sumBy -http://lodash.think2011.net/stringSize http://lodash.think2011.net/templateSettings-imports-_ http://lodash.think2011.net/clamp http://lodash.think2011.net/inRange @@ -265,6 +265,7 @@ http://lodash.think2011.net/upperCase http://lodash.think2011.net/upperFirst http://lodash.think2011.net/words +http://lodash.think2011.net/runInContext http://lodash.think2011.net/attempt http://lodash.think2011.net/bindAll http://lodash.think2011.net/cond @@ -289,7 +290,6 @@ http://lodash.think2011.net/propertyOf http://lodash.think2011.net/range http://lodash.think2011.net/rangeRight -http://lodash.think2011.net/runInContext http://lodash.think2011.net/times http://lodash.think2011.net/toPath http://lodash.think2011.net/uniqueId diff --git a/size.html b/size.html index 86453d7..f2daf58 100644 --- a/size.html +++ b/size.html @@ -119,7 +119,8 @@

    • xorWith
    • zip
    • zipObject
    • -
    • zipWith
    • +
    • zipObjectDeep
    • +
    • zipWith
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
    • attempt
    • @@ -380,7 +384,6 @@
    • propertyOf
    • range
    • rangeRight
    • -
    • runInContext
    • times
    • toPath
    • uniqueId
    • @@ -392,7 +395,7 @@
      -

      sortBy source npm

      +

      sortBy source npm

      _.sortBy(collection, [iteratees=[_.identity]])

      创建一个元素数组。 @@ -412,25 +415,24 @@

      返回值 (Array)

      返回排序后的数组

      示例

      -
      var resolve = _.partial(_.map, _, _.values);
      -
      -var users = [
      +    
      var users = [
         { 'user': 'fred',   'age': 48 },
         { 'user': 'barney', 'age': 36 },
         { 'user': 'fred',   'age': 42 },
         { 'user': 'barney', 'age': 34 }
       ];
       
      -resolve( _.sortBy(users, function(o) { return o.user; }) );
      -// => // => [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 42]]
       
      -resolve( _.sortBy(users, ['user', 'age']) );
      -// => [['barney', 34], ['barney', 36], ['fred', 42], ['fred', 48]]
      +_.sortBy(users, function(o) { return o.user; });
      +// => 排序结果 [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 42]]
      +
      +_.sortBy(users, ['user', 'age']);
      +// => 排序结果 [['barney', 34], ['barney', 36], ['fred', 42], ['fred', 48]]
       
      -resolve( _.sortBy(users, 'user', function(o) {
      +_.sortBy(users, 'user', function(o) {
         return Math.floor(o.age / 10);
      -}) );
      -// => [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 42]]
      +});
      +// => 排序结果 [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 42]]
       
      diff --git a/sortedIndex.html b/sortedIndex.html index 6d32251..c8664db 100644 --- a/sortedIndex.html +++ b/sortedIndex.html @@ -119,7 +119,8 @@
    • xorWith
    • zip
    • zipObject
    • -
    • zipWith
    • +
    • zipObjectDeep
    • +
    • zipWith
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
    • attempt
    • @@ -380,7 +384,6 @@
    • propertyOf
    • range
    • rangeRight
    • -
    • runInContext
    • times
    • toPath
    • uniqueId
    • @@ -392,15 +395,15 @@
      -

      throttle source npm

      +

      throttle source npm

      _.throttle(func, [wait=0], [options])

      创建一个节流函数,在 wait 秒内最多执行 func 一次的函数。 该函数提供一个 cancel 方法取消延迟的函数调用以及 flush 方法立即调用。 -可以提供一个 options 对象决定如何调用 func 方法, options.leading 与|或 options.trailing 决定 wait 前后如何触发。 func 会传入最后一次传入的参数给这个函数。 随后调用的函数返回是最后一次 func 调用的结果。 +可以提供一个 options 对象决定如何调用 func 方法, options.leading 与|或 options.trailing 决定 wait 前后如何触发。 func 会传入最后一次传入的参数给这个函数。 随后调用的函数返回是最后一次 func 调用的结果。

      -注意: 如果 leading 和 trailing 都设定为 true。 则 func 允许 trailing 方式调用的条件为: 在 wait 期间多次调用。 +注意: 如果 leading 和 trailing 都设定为 true。 则 func 允许 trailing 方式调用的条件为: 在 wait 期间多次调用。

      查看 David Corbacho's article diff --git a/thru.html b/thru.html index f91440a..e15a362 100644 --- a/thru.html +++ b/thru.html @@ -119,7 +119,8 @@

    • xorWith
    • zip
    • zipObject
    • -
    • zipWith
    • +
    • zipObjectDeep
    • +
    • zipWith
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
    • attempt
    • @@ -380,7 +384,6 @@
    • propertyOf
    • range
    • rangeRight
    • -
    • runInContext
    • times
    • toPath
    • uniqueId
    • @@ -392,7 +395,7 @@
      -

      toArray source npm

      +

      toArray source npm

      _.toArray(value)

      转换 value 为数组

      @@ -407,10 +410,17 @@

      返回值 (Array)

      然后转换后的数组

      示例

      -
      (function() {
      -  return _.toArray(arguments).slice(1);
      -}(1, 2, 3));
      -// => [2, 3]
      +    
      _.toArray({ 'a': 1, 'b': 2 });
      +// => [1, 2]
      +
      +_.toArray('abc');
      +// => ['a', 'b', 'c']
      +
      +_.toArray(1);
      +// => []
      +
      +_.toArray(null);
      +// => []
       
      diff --git a/toInteger.html b/toInteger.html index 5be5ba5..43a3a0c 100644 --- a/toInteger.html +++ b/toInteger.html @@ -119,7 +119,8 @@
    • xorWith
    • zip
    • zipObject
    • -
    • zipWith
    • +
    • zipObjectDeep
    • +
    • zipWith
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
  • Chain
      @@ -259,7 +260,6 @@
  • Methods
  • Number @@ -354,6 +354,10 @@
  • upperFirst
  • words
  • +
  • Util +
  • Utility
    • attempt
    • @@ -380,7 +384,6 @@
    • propertyOf
    • range
    • rangeRight
    • -
    • runInContext
    • times
    • toPath
    • uniqueId
    • @@ -392,24 +395,26 @@
      -

      zipWith source npm

      -
      _.zipWith([arrays], [iteratee=_.identity])
      +

      zipWith source npm

      +
      _.zipWith([arrays])
      -

      这个方法类似 _.zip,除了它接受一个 iteratee 决定如何重组值。iteratee 会传入4个参数:(accumulator, value, index, group)。每组的第一个元素作为初始化的值

      +

      这个方法类似 _.zip, +除了它接受一个 iteratee 决定如何重组值。 +iteratee 会调用每一组元素。

      参数

      1. [arrays] (...Array)

        要处理的数组队列

        -
      2. -
      3. [iteratee=_.identity] (Function)

        这个函数决定如何重组值

      返回值 (Array)

      返回一个打包后的数组

      示例

      -
      _.zipWith([1, 2], [10, 20], [100, 200], _.add);
      +    
      _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {
      +  return a + b + c;
      +});
       // => [111, 222]