lodash(一)數組


  • 前言:

lodash是一個具有一致接口、模塊化、高性能等特性的JavaScript工具庫(官網地址:http://lodashjs.com/docs/#_differencearray-values)。

  • 過程:

接觸js也已經有一年多的時間了,那天無意間從大神同事那里聽到這個性能更好的工具,終於抽出時間看看它的文檔,竟然有了意想不到的收獲:之前在項目中總是遇到關於數組的各種處理,比如合並數組去重什么的,現在只要一行代碼便可完美解決,真是有點小激動!話不多說,直接說過程:

      1.它的安裝方法很多種,官網上有很詳細的介紹,於是就不重復介紹了,只是分享自己用到的吧!

1)用在node.js環境下:

npm i lodash –-save

2)用在HTML中:

<script src="lodash.js"></script>

          注意:關於在瀏覽器中用到lodash文件的引用問題,只有在引入lodash.min.js后,lodash才會正常使用;而其他版本的,皆會報“ Uncaught TypeError: _.difference is not a function”的錯誤,原因就在於里面沒有difference方法,至於為什么沒有,那就不得而知了。

3)csdn下:(https://www.jsdelivr.com/projects/lodash

          從上面的網址中可以自行選擇需要的lodash版本。

      2.接着,就來看看在lodash中的收獲吧(都是使用lodash中的方法):

1)_.union([arrays]):合並數組,並返回去重后的數組  (並集)

    var arr1 = _.union([2,3],[3,8],[2,7]);//返回的是組合在一起並去重的數組,但並非排序后的數組
     console.log(arr1);//[2, 3, 8, 7]

2)_.uniq(array, [isSorted], [iteratee], [thisArg]):數組去重

array:需要檢查的數組;[isSorted]:可有可無,如為true,則對數組排序,否則不排序;[iteratee] (Function|Object|string): The function invoked per iteration.

    var arr2 = _.uniq([2,3,3,8,2,7],true);
    console.log(arr2);//[2, 3, 8, 7]
    var arr3 = _.uniq([3,3,2,1, 1, 2], true);
    console.log(arr3);//[3, 2, 1]

疑問:為什么我使用的排序屬性沒有起作用呢?百思不得其解……

3)_.without(array, [values]):返回一個新數組,其中不包括[values]中的元素([values]也就是過濾掉的元素)

    var arr4 = _.without([3,3,2,1, 1, 2],3);
    console.log(arr4);//[2, 1, 1, 2]

4)_.xor([arrays]):合並數組,並返回一個新數組,去除掉重復出現的元素  (補集)

    var arr8 = _.xor([1,2,4], [3,2,8,5],[2,8,7]);
console.log(arr8);//[1, 4, 3, 5, 7]

5)_.interseciton([arrays]):     (交集)  

   var a = [22,11,99];
   var b = [11,77,55,22];
   var c = [53,77,33,22];
   console.log(_.union(a, b, c));//[22, 11, 99, 77, 55, 53, 33]
   console.log(_.intersection(a, b, c));//[22]
   console.log(_.xor(a, b,c));//[99, 55, 53, 33]
  • 后言:

關於lodash的更多便利,接下來繼續學習!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM