find、filter、map的區別
阿新 • • 發佈:2018-11-13
1、find 查詢陣列中符合條件的第一個元素,如果沒有符合條件的元素則返回空陣列
var arr = [1,2,3,4,5,6,7] var newarr=arr.find(v=>v===4) var men=[ {name:'zhangsan',age:'18',sex:'女'}, {name:'lisi',age:'10086',sex:'nan'}, {name:'xiaohuangren',age:'23',sex:'nan'}, {name:'xiaokeai',age:'18',sex:'女'}, ] var women= men.find(person=> person.sex==='女')
2、filter 過濾陣列元素,返回過濾後的陣列,如果沒有符合條件的元素則返回空陣列
//輸出大於5的數,組成新陣列
var arr = [1,2,3,4,5,6,7]; var newarr = arr.filter(function(num){ reture num>5?num:'' });
3、map 對每個陣列元素執行相同操作,返回執行後的新陣列(我喜歡稱呼他為對映,一一對應)
//給陣列的每一個元素加1,組成新陣列 var arr = [1,2,3,4,5,6,7]; var newarr=arr.map(function (num) {return num+1; })
總結的話,他們三個的區別是很明顯的,
find是隻返回一個值,這個值是符合條件的第一個
filter是返回一個新陣列,這個新陣列中的值是符合條件的值組成的陣列
map 是返回一個與原陣列length相等的陣列,因為map是對每一個元素進行了操作