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