摘要:不會改變原數(shù)組,它返回過濾后的新數(shù)組。打印到控制臺成功的收集到里面錯誤的收集到里面。語法參數(shù)回調(diào)當前的當前的索引值這個數(shù)組對象回調(diào)的指向用法場景這個一般就用在,判斷數(shù)組的每個元素是否符合條件。
首先是函數(shù)概述:
map():返回一個新的Array,每個元素為調(diào)用func的結(jié)果
filter():返回一個符合func條件的元素數(shù)組
some():返回一個boolean,判斷是否有元素是否符合func條件
every():返回一個boolean,判斷每個元素是否符合func條件
forEach():沒有返回值,只是針對每個元素調(diào)用func
reduce():有返回值,重點是計算數(shù)組,返回一個值
其次
1、map速度比forEach快
2、map會返回一個新數(shù)組,不對原數(shù)組產(chǎn)生影響,foreach不會產(chǎn)生新數(shù)組,
3、map因為返回數(shù)組所以可以鏈式操作,forEach不能
filter
語法
var new_arr = arr.filter(callback(element, index, array){ }, this)
參數(shù):callback 回調(diào)
element 當前的value index 當前的索引值 array arr這個數(shù)組對象 this 回調(diào)的this指向
用法
//如果返回值是true的話,就是符合條件。
//filter 不會改變原數(shù)組,它返回過濾后的新數(shù)組。
//這個里返回數(shù)組里面的偶數(shù)
[10,11,12,13].filter((v)=>v % 2 == 0)
場景
場景就是過濾,把符合條件的整理到一起,常見的就是展示審核通過的數(shù)據(jù)
forEach
語法
arr.forEach(callback(element, index, array){ }, this)
參數(shù):callback 回調(diào)
element 當前的value index 當前的索引值 array arr這個數(shù)組對象 this 回調(diào)的this指向
用法
//遍歷數(shù)組。打印到控制臺
[10,11,12,13].forEach((v)=>{ console.log(v) })
// 成功的收集到success里面,錯誤的收集到error里面。
var success = [],error = []; [{state:1},{state:0},{state:0},{state:0}].forEach((v)=>{ if(v.state == 1){ success.push(v) }else{ error.push(v) } })
場景
比如說綁定事件,比如判斷值然后push到不同的地方
map
語法
arr.map(callback(element, index, array){ }, this)
參數(shù):callback 回調(diào)
element 當前的value index 當前的索引值 array arr這個數(shù)組對象 this 回調(diào)的this指向
用法
//把數(shù)值格式化,保留兩位小數(shù)
[10.055,11.054,12.056,13.789].map((v)=>+v.toFixed(2))
場景
這個一般就用在,我需要一組值,但是這個值不對,需要計算原數(shù)組來生成。
reduce
語法
arr.reduce(callback(accumulator, element, index, array){ }, initialValue)
參數(shù):callback 回調(diào)
sum 累加器的返回值,也就是上一次回調(diào)的返回值 element 當前的value index 當前的索引值 array arr這個數(shù)組對象 initialValue 初始傳入的值,如果不傳回調(diào)從下標1開始,下標0作為初始值
用法
//累加
[10,11,12,13].reduce((s,v)=>s+v,0)
場景
這個計算整個數(shù)組得出一個值的
some
語法
arr.some(callback(element, index, array){ }, this)
參數(shù):callback 回調(diào)
element 當前的value index 當前的索引值 array arr這個數(shù)組對象 this 回調(diào)的this指向
用法
initArray = initArray.some(item => { if (item === 1){ return true } return false })
場景
這個一般就用在,判斷數(shù)組里是否有某個值。
every
語法
arr.every(callback(element, index, array){ }, this)
參數(shù):callback 回調(diào)
element 當前的value index 當前的索引值 array arr這個數(shù)組對象 this 回調(diào)的this指向
用法
initArray = initArray.every(item => { if (item === 1){ return true } return false })
場景
這個一般就用在,判斷數(shù)組的每個元素是否符合func條件。
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/108205.html
摘要:總結(jié)遍歷數(shù)組的時候應該盡量使用這些,靈活運用可以讓代碼更加優(yōu)雅,這種盡可能使用函數(shù)和鏈式調(diào)用的風格很接近函數(shù)式編程,可以提高代碼質(zhì)量。 js中有很多可以遍歷數(shù)組的API,既然已經(jīng)封裝的這么好,為什么不在平常開發(fā)的時候使用,本文講講forEach、map、filter、some、every、reduce這些API的使用,并且和普通的for語句作對比。 我們以一個對象數(shù)組作為測試數(shù)據(jù): c...
摘要:前言從最開始學的循環(huán)遍歷方法,到后來層出不窮的各種遍歷方法,其實最大的區(qū)別就是應用場景的不同。我們最需要記住的就是,什么情況下用哪一種方法比較合適。 前言 從最開始學的for循環(huán)遍歷方法,到后來層出不窮的各種遍歷方法,其實最大的區(qū)別就是應用場景的不同。我們最需要記住的就是,什么情況下用哪一種方法比較合適。 從挑土豆開始 showImg(https://segmentfault.com/...
摘要:關于循環(huán)遍歷寫下這篇文章的目的,主要是想總結(jié)一下關于對于集合對象遍歷的方式方法,以及在實際應用場景中怎樣去使用它們。的作用主要是去遍歷對象的可枚舉屬性。例如索引,數(shù)值打印結(jié)果為當?shù)诙棽粷M足條件式跳出循環(huán),返回。 關于JS循環(huán)遍歷 寫下這篇文章的目的,主要是想總結(jié)一下關于JS對于集合對象遍歷的方式方法,以及在實際應用場景中怎樣去使用它們。本文會主要介紹:while,for,forEac...
摘要:方法,還有一個特性,當缺省或是為,和方法一樣,通常我用對數(shù)組的每個元素進行一定操作映射后,會返回一個新的數(shù)組該方法對數(shù)組中的每一項運行給定函數(shù)。 1. 前言 ES5中新增的一些處理數(shù)組(Array)的方法, 對于用JavaScript處理數(shù)據(jù)非常有用。我總結(jié)了一下,給這些方法分了類,大體如下: 2個索引方法:indexOf() 和 lastIndexOf(); 5個迭代方法:forEa...
閱讀 909·2021-11-15 11:38
閱讀 2555·2021-09-08 09:45
閱讀 2864·2021-09-04 16:48
閱讀 2599·2019-08-30 15:54
閱讀 960·2019-08-30 13:57
閱讀 1656·2019-08-29 15:39
閱讀 530·2019-08-29 12:46
閱讀 3554·2019-08-26 13:39