js的map、flatMap和find、filter的使用詳解
js的map、flatMap和find、filter的使用
map和flatMap 都是返回一個新數(shù)組,map不會改變數(shù)組長度,flatMap可以改變長度
就是在數(shù)組上加工變成一個新的數(shù)組,切不會改變數(shù)組長度,不滿足條件的返回undefined
map使用和flatMap是一樣的
結(jié)果也是一樣
let arr = [1, 2, 3, 4, 5, 6]; let res = arr.map((e) => { if (e % 2 == 0) { return e; } }); console.log("res===[undefined, 2, undefined, 4, undefined, 6]",res); let res2 = arr.map((e) => { return e * 2 }); console.log("res2===[2, 4, 6, 8, 10, 12]",res2); //簡介方式 let res3 = arr.map((e) => e * 2); console.log("res3===[2, 4, 6, 8, 10, 12]",res3)
flatMap會將結(jié)果數(shù)組扁平化一層
就是返回的結(jié)果是一個數(shù)組,就會將數(shù)組去掉后返回,假如返回的不是數(shù)組,會變成數(shù)組在扁平化一層在返回
let arr = [1, 2, 3, 4, 5, 6]; let res = arr.flatMap((e) => { if (e % 2 == 0) { return e; } }); console.log("res===[undefined, 2, undefined, 4, undefined, 6]"); let res2 = arr.flatMap((e) => { return e * 2 }); console.log("res2===[2, 4, 6, 8, 10, 12]"); let res3 = arr.flatMap((e) => { return [e,e * 2] } ); console.log("res3=== [1, 2, 2, 4, 3, 6, 4, 8, 5, 10, 6, 12]",res3)
find 、filter 都是過濾操作
找到符合要求的對象返回,區(qū)別在于find只會返回第一個找到的值,而filter會返回全部符合要求的對象
let res4 = arr.find((e) => { return e % 2 === 0 }) console.log("res4=== [2]",res4) let res5 = arr.filter((e) => { return e % 2 === 0 }) console.log("res5=== [2,4,6]",res5)
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
多個表單中如何獲得這個文件上傳的網(wǎng)址實現(xiàn)js代碼
假設(shè)一個網(wǎng)頁里有多個表單,其中一個表單里有文件上傳,問題是如何獲得這個文件上傳的網(wǎng)址呢,接下來為大家介紹下實現(xiàn)的js代碼,感興趣的朋友可以參考下哈,希望可以幫助到你2013-03-03Javascript將string類型轉(zhuǎn)換int類型
今天網(wǎng)站有個小功能要判斷用戶購買商品數(shù)量是否大于庫存數(shù)據(jù),如果大于庫存數(shù)量,就給予提示。2010-12-12詳解利用exif.js解決ios手機(jī)上傳豎拍照片旋轉(zhuǎn)90度問題
這篇文章主要介紹了詳解利用exif.js解決ios手機(jī)上傳豎拍照片旋轉(zhuǎn)90度問題,有需要的朋友可以了解一下。2016-11-11Highcharts 多個Y軸動態(tài)刷新數(shù)據(jù)的實現(xiàn)代碼
下面小編就為大家?guī)硪黄狧ighcharts 多個Y軸動態(tài)刷新數(shù)據(jù)的實現(xiàn)代碼。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-05-05基于css3新屬性transform及原生js實現(xiàn)鼠標(biāo)拖動3d立方體旋轉(zhuǎn)
這篇文章主要介紹了基于css3新屬性transform及原生js實現(xiàn)鼠標(biāo)拖動3d立方體旋轉(zhuǎn) 的相關(guān)資料,需要的朋友可以參考下2016-06-06詳解嵌套命名空間在TypeScript中如何應(yīng)用
命名空間是TypeScript中非常有用的概念,可以幫助我們組織和管理代碼,避免命名沖突,下面小編就來和大家聊聊嵌套命名空間在TypeScript中是如何應(yīng)用的吧2023-06-06