開發人員不僅需要完成任務,還需要以更高效的方式完成任務。 如今,JavaScript 中有幾個庫可以讓開發人員更輕鬆地處理變量。 我們將在本教程中學習如何使用 Lodash 庫中最常用的函數。
如果您還沒有嘗試過 Lodash,那麼現在就是時候了。 Lodash 是一個現代 JavaScript 實用程序包,它簡化了對數組、整數、對象、文本和其他數據類型的處理。
它將幫助您處理各種類型的對象,並通過消除編寫泛型方法的需要來節省您的時間。 您的代碼會更簡潔,行數更少,並且可以在所有瀏覽器中運行。 如果你還沒有使用它,你應該仔細考慮它。
不採用 Lodash 對我們的 JavaScript 代碼庫來說是一個巨大的損失。 對於我們在工作中遇到的常見挑戰,它是一種無錯誤且優雅的解決方案,使用它只會使我們的代碼更具可讀性和可管理性。
讓我們深入研究一些更流行(或不是!)的 Lodash 函數,並發現這個庫是多麼有用和美麗。
1. _.sortedUniq
此值不會返回所有重複值。 因為它僅用於排序數組,所以主要用於速度原因。 這僅在您處理大型數組時才有用。 如果您希望提高速度,請對數組進行排序並使用對排序數組進行更好操作的方法。
Lodash 還有許多與此類似的其他功能。 您可以查看 .sortedIndex、.sortedIndexBy、.sortedIndexOf、.sortedLastIndex、.sortedLastIndexBy、.sortedLastIndexOf、.sortedUniq、.sortedUniqBy、.sortedUniqBy、.sortedUniqBy、.sortedUniqBy。
2. _.減少
_.reduce 類似於過濾器函數。 唯一的區別是您可以選擇返回對象的形式。 如果您不理解我在說什麼,這很正常; 有一個例子。
本質上,我們返回一個包含按年齡分類的用戶的新對象,但僅限於 18 到 59 歲的用戶。這個 Lodash 輔助函數是最常用的函數之一。 它也包含在 ES6 中。 我還想指出兩個典型的錯誤:記住在函數結束時返回結果,並提供結果的默認值作為第三個參數(此處)。
3. _.get 和 ._set
對於這個,我將通過展示兩個執行幾乎相同的功能的函數來欺騙您。 _.get 從一個對象返回一個屬性值,而 _.set,好吧,你猜對了,設置一個帶有值的屬性。 沒有什麼獨特的,除了你可以通過它的路徑訪問一個屬性。
讓我們看一個例子。
如果調用_.set時路徑不存在,則會生成。 不會再出現“無法設置未定義的屬性‘項目’”錯誤。 如果路徑不存在,_.get 將返回 undefined 而不是錯誤。 如果路徑解析為未定義,您還可以提供默認值(第三個參數)。
4. _.查找
我們可以使用 _.find,而不是遍歷數組來查找單個對象。 這很好,但這不是 _.find 可以做的唯一事情。 只需一行代碼,您還可以利用眾多屬性來發現一個對象。 看看這個!
5. _.keyBy
我的最愛之一是 _.keyBy。 在嘗試獲取具有特定屬性的對象時非常有用。 假設我們有 100 個博客條目,並且想要獲取 ID 為“34abc”的條目。 我們要怎麼做? 讓我們看看發生了什麼! 如果服務器將對象集合作為數組提供,此方法可以幫助您安排對象集合。 函數也可以用作第二個參數。
6._.forEach
此方法將逐個遍歷對像數組,允許您執行任何您想要的邏輯。 在第一個示例中,我將遍歷用戶對象列表,合併他們的名字和姓氏以創建一個名為 fullName 的新屬性。
forEach 接受兩個參數。 我們循環的數組是第一個參數。 第二個參數是一個迭代函數,第一個參數是單個項目引用,第二個參數是迭代的當前索引。
7._.地圖
Map 和 forEach 一樣,遍歷一個值數組。 另一方面,map 函數返回由 iterate 函數提供的新值數組。 我們使用的用戶集合與此處的 forEach 示例中的用戶集合相同。 我們可以使用 _.map 生成一個新變量,該變量具有所有用戶全名的扁平數組。
8. _.差異
差異函數將生成一個新數組,該數組在第一個數組和第二個數組之間存在差異。 重要的是要注意論點的位置會影響結果。
9._.得到
_.get() 函數可以幫助我們在對像中定位元素。 如果在提供的路徑中找不到元素,我們可以為 _.get() 函數設置默認值以返回。 _.get() 函數接受三個參數,第一個參數是我們希望從中獲取元素的對象。 路徑是第二個。 第三個值是我們想要在找不到元素時返回的默認值。
10. _.查找
_find() 函數可能看起來與 _.get() 方法相同。 _.find() 函數與 _.get() 方法一樣,接受三個參數。 但是,與 _.get() 方法不同,第一個參數可以是數組或對象。 第二個參數指定將在每次迭代中調用的函數。 第三個輸入是集合的開始索引。 因為 _.find() 函數遍歷集合中的每個元素。
11._.groupBy
創建一個由函數結果(或隨機選擇的屬性名稱)命名的對象,每個值都是具有相同鍵的對像數組。
12. _.設置
_.set() 方法與 _.get() 方法相反。 它將改變給定路徑上元素的值。 對像或數組是第一個參數,路徑是第二個,要設置的值是第三個。
13. _.合併
它的功能類似於 Object.assign,除了它深入底層結構以更新更深的對象而不是替換它們。
14. ._去毛刺
這是一個相當簡單的例子。 所有“組合變音標記”都被刪除。 因此“é”變成了“e”。 當存在國際化和本地化時,對搜索功能的文本去毛刺是一種很好的做法。
15._.去抖動
這是最有效的 Lodash 策略之一。 也可能很難掌握它的作用以及何時應該使用它。 _.debounce() 方法返回一個函數。 _.debounce() 方法的函數將延遲調用,直到自上次調用該函數以來經過指定的毫秒數。
結論
Lodash 是 JavaScript 語言的強大擴展。 只需最少的努力,就可以構建簡潔高效的代碼。 Lodash 也是完全模塊化的。 儘管它的一些功能最終可能會被棄用,但我相信它仍然會為開發人員帶來許多好處,同時也會推動 JS 語言的發展。
我希望這幾個 Lodash 功能可以幫助您了解 Lodash 在處理數組、對象和集合時的強大功能。 您可以訪問 文檔 探索它必須提供的大量其他選擇。
發表評論