前言
不廢話芙盘,直接上正題豆村。
1 forEach (讓數(shù)組中的每一項都做一件事)
如果不做特殊處理液兽,一般情況下,不會break的掌动。如果需要中途跳出循環(huán)四啰,建議直接用for語句好了。
let arr = [1,2,3,4,5];
arr.forEach((item,index)=> {
console.log(item);
})
// 1,2,3,4,5
2 map (讓數(shù)組通過某種計算產(chǎn)生一個新數(shù)組)
let arr = [1,2,3,4,5];
let newArray = arr.map((item,index)=> {
return item * 2
});
newArray // [2, 4, 6, 8, 10]
arr // [1,2,3,4,5]
這里返回的是一個新的數(shù)組坏匪,并不會改變原來數(shù)組拟逮。
3 reduce (讓數(shù)組中的前項和后項做某種計算,并累計最終值)
let arr = [1,2,3,4,5];
let result = arr.reduce((prev, cur, index, arr)=> {
return prev + cur;
});
callbackFunction 包含4個參數(shù)适滓,先解釋下它們的意思:
prev:第一項的值或者上一次疊加的結果值
cur: 當前會參與疊加的項
index: 當前索引
arr: 數(shù)組本身
此時,初始值默認為數(shù)組的 [0],如果想自定義初始值恋追,那可以給reduce添加第二個參數(shù)(initialValue)凭迹,如下
let result = arr.reduce((prev, cur, index, arr)=> {
return prev + cur;
}, -5);
// 如果是累加罚屋,一定要注意 initialValue 的類型,如果設置成了字符串嗅绸,根據(jù) “兩者相加脾猛,值類型與第一個加數(shù)相同”,那么結果就是一個字符串鱼鸠。
4 filter (篩選處數(shù)組中符合條件的項猛拴,返回一個新數(shù)組)
let arr = [1,2,3,4,5];
let newArray = arr.filter((item,index)=> {
return item > 3;
});
newArray // [4,5]
5 every (檢測數(shù)組中的每一項是否符合條件)
可以理解成 && '且'的關系
let arr = [1,2,3,4,5];
let result = arr.every((item,index)=> {
return item > 0;
});
result // true
6 some (檢測數(shù)組是否有某些項目符合條件)
可以理解成 || '或'的關系
let arr = [1,2,3,4,5];
let result = arr.some((item,index)=> {
return item > 2;
});
result // true