filter也是一個(gè)常用的操作,它用于把Array的某些元素過(guò)濾掉,然后返回剩下的元素。
和map()類似,Array的filter()也接收一個(gè)函數(shù)。和map()不同的是,filter()把傳入的函數(shù)依次作用于每個(gè)元素,然后根據(jù)返回值是true還是false決定保留還是丟棄該元素。
例如,在一個(gè)Array中,刪掉偶數(shù),只保留奇數(shù),可以這么寫(xiě):
var arr = [1, 2, 4, 5, 6, 9, 10, 15];var r = arr.filter(function (x) { return x % 2 !== 0;});r; // [1, 5, 9, 15]
把一個(gè)Array中的空字符串刪掉,可以這么寫(xiě):
var arr = ['A', '', 'B', null, undefined, 'C', ' '];var r = arr.filter(function (s) { return s && s.trim(); // 注意:IE9以下的版本沒(méi)有trim()方法});r; // ['A', 'B', 'C']
可見(jiàn)用filter()這個(gè)高階函數(shù),關(guān)鍵在于正確實(shí)現(xiàn)一個(gè)“篩選”函數(shù)。
練習(xí)
請(qǐng)嘗試用filter()篩選出素?cái)?shù)
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注