一、Lodash Filter簡介
Lodash是一個JavaScript實用函數庫,提供了很多常用的函數和方法來簡化開發過程,其中最常用的函數之一就是Lodash的Filter函數。它的作用是從一個數組中過濾出符合條件的值,返回一個新的數組。Filter函數非常靈活,可以過濾任何類型的數組,也可以使用回調函數來自定義過濾邏輯。
_.filter(array, [predicate=_.identity])
其中array參數指要過濾的數組,predicate是過濾函數,可以是一個回調函數或一個對象,如果不傳入predicate參數,則默認使用Lodash的identity函數。下面將具體介紹Lodash Filter的多種應用場景。
二、過濾除空值以外的數組元素
有時候我們需要從數組中過濾掉那些空值,包括undefined、null、空字元串以及NaN等。使用Lodash Filter可以很方便地實現這一功能。
const arr = ['Hello', undefined, null, '', NaN, 0]; const newArr = _.filter(arr, Boolean); console.log(newArr); // ["Hello", 0]
上述代碼將原數組arr中的空值過濾掉,只返回非空值的元素,即”Hello”和0。
三、過濾數組中的重複元素
有時候,我們需要從一個數組中過濾掉重複的元素,返回一個去重後的新數組。這時,可以使用Lodash Filter結合Lodash的Uniq函數來實現。
const arr = [1, 2, 3, 2, 4, 1, 5]; const uniqArr = _.uniq(arr); console.log(uniqArr); // [1, 2, 3, 4, 5]
上述代碼先使用Lodash的Uniq函數去重,然後再使用Lodash Filter過濾出不重複的元素,即返回結果為[1, 2, 3, 4, 5]。
四、過濾數組中大於某個值的元素
有時候,我們需要從一個數組中篩選出大於某個特定值的元素,這時可以使用Lodash Filter結合箭頭函數來實現。
const arr = [5, 10, 15, 20, 25, 30]; const newArr = _.filter(arr, x => x > 20); console.log(newArr); // [25, 30]
上述代碼使用Lodash Filter和箭頭函數來找到arr數組中大於20的元素,最終返回[25, 30]這個新的數組。
五、自定義過濾函數
Lodash Filter的最大特點在於,它可以接受自定義的過濾函數。比如,我們可以寫一個函數來判斷數組中的元素是否包含特定的字元。
const arr = ['JavaScript', 'Python', 'Java', 'Ruby', 'HTML', 'CSS']; const filterFn = (item, keyword) => item.includes(keyword); const newArr = _.filter(arr, x => filterFn(x, 'Java')); console.log(newArr); // ['JavaScript', 'Java']
上述代碼中,我們定義了filterFn函數來判斷數組中的元素是否包含特定的字元,然後在使用Lodash Filter時,傳入該函數作為參數,即可得到包含指定字元的元素。
六、小結
Lodash Filter是一個非常常用且靈活的函數,它可以用於過濾數組中符合條件的元素,同時支持自定義過濾函數。我們可以通過以上場景來更好地掌握Lodash Filter的使用方法,為自己的JavaScript編程提供更多的便利。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/186413.html