美文网首页
JavaScript学习-underscore

JavaScript学习-underscore

作者: LittleJessy | 来源:发表于2019-04-24 14:16 被阅读0次
      underscore则提供了一套完善的函数式编程的接口,让我们更方便地在
    

    JavaScript中实现函数式编程。
    jQuery在加载时,会把自身绑定到唯一的全局变量 $ 上,underscore与其类似,
    会把自身绑定到唯一的全局变量 _ 上,这也是为啥它的名字叫underscore的原
    因。

    collections

      underscore为集合类对象提供了一致的接口。集合类是指Array和Object,暂不支持Map和Set。
    
    1. map/filter
      underscore的 map() 和 filter() 可以作用于Object。当作用于Object时,传入的函数
      为 function (value, key) ,第一个参数接收value,第二个参数接收key:


      image.png
    2. every/some
      当集合的所有元素都满足条件时, _.every() 函数返回 true ,当集合的至少一
      个元素满足条件时, _.some() 函数返回 true :


      image.png

      集合为object时:


      image.png
    3. max/min
      这两个函数直接返回集合中最大和最小的数:


      image.png

      集合为object时,max()和min()只作用于value,忽略掉key:


      image.png
    4. groupBy
      把集合的元素按照key归类,key由传入的函数返回:


      image.png
    5. shuffle/sample
      shuffle()用洗牌算法随机打乱一个集合:


      image.png

      sample()则是随机选择一个或多个元素:


      image.png

    Arrays,针对数组的函数

    1. first/last
      这两个函数分别取第一个和最后一个元素


      image.png
    2. flatten
      flatten()接收一个Array,无论这个Array里面嵌套了多少个Array,flatten()最后都把它们变成一个一维数组:


      image.png
    3. zip/unzip
      zip()把两个或多个数组的所有元素按索引对齐,然后按索引合并成新数组:


      image.png

      unzip()则反过来:


      image.png
    4. object


      image.png
    5. range
      快速生成一个序列,不再需要用for循环实现


      image.png

    objects,针对对象的函数

    1. keys/allKeys
      keys()可以非常方便地返回一个object自身所有的key,但是不包含从原型链继承下来的:


      image.png

      allKeys()除了object自身的key,还包含从原型继承下来的:


      image.png
    2. values
      返回object自身但不包含原型链继承的所有值


      image.png
    3. mapObject


      image.png
    4. invert
      invert()把object的每个key-value交换位置,key变为value,value变成key:


      image.png
    5. extend
      extend()把多个object的key-value合并到第一个object并返回,如果有相同的key,后面的object的value将覆盖前面的object的value:


      image.png
    6. clone
      复制一个object对象,将原有对象的所有属性都复制到新的对象中,clone()为‘浅复制’,两个对象相同的key所引用的value其实是同一个对象:


      image.png
    7. isEqual
      isEqual()对两个object进行深度比较,如果内容完全相同,则返回true:


      image.png

      isEqual()也可以对Array进行比较:


      image.png

    相关文章

      网友评论

          本文标题:JavaScript学习-underscore

          本文链接:https://www.haomeiwen.com/subject/gfiwgqtx.html