首先,這兩個方法map()和filter()都是對調用他們的數組進行遍歷。
那麼我們在項目中,什麼情況下使用map(),又在什麼情況下使用filter()呢?在瞭解這個問題之前,我們需要知道的是他們區別在哪兒?
1、map()的使用方法:
arr.map((item,index,array)=>{……})
2、filter()的使用方法:
arr.filter((item,index,array)=>{……})
都是將函數寫在方法的括號裏,參數也一樣,
行參的參數說明:
- item:當前處理的元素
- index:當前處理元素的索引
- array:調用map或者filter方法數組本身
下面我們舉一個例子:
let arr=[3,5,17,15,4,14];
let res1=arr.map((item,index,array)=>{
// return array[index]; //用這種方法也可以獲取到當前處理的元素
return item>5;
});
console.log(res1)//[ false, false, true, true, false, true ]
map()方法返回的結果是:[ false, false, true, true, false, true ]
也就是說符合條件或者不符合條件的,都將boolean類型值返回給到新的數組
let arr=[3,5,17,15,4,14];
let res2=arr.filter((item,index,array)=>{
return item>5;
});
console.log(res2) //[ 17, 15, 14 ]
filter()方法返回的結果是:[ 17, 15, 14 ]
也就是說符合條件就會把值返回到新的數組中
區別:
可以看到,
map() 的結果只是對當前元素調用函數後,將符合條件boolean類型值返回給到新的數組
filter() 會將結果爲true的數組值存到新的數組裏面。