前言
不廢話口蝠,直接上正題器钟。
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:第一項的值或者上一次疊加的結(jié)果值
cur: 當(dāng)前會參與疊加的項
index: 當(dāng)前索引
arr: 數(shù)組本身
此時,初始值默認為數(shù)組的 [0],如果想自定義初始值梳杏,那可以給reduce添加第二個參數(shù)(initialValue)韧拒,如下
let result = arr.reduce((prev, cur, index, arr)=> {
return prev + cur;
}, -5);
// 如果是累加,一定要注意 initialValue 的類型十性,如果設(shè)置成了字符串叛溢,根據(jù) “兩者相加,值類型與第一個加數(shù)相同”劲适,那么結(jié)果就是一個字符串楷掉。
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ù)組中的每一項是否符合條件)
可以理解成 && '且'的關(guān)系
let arr = [1,2,3,4,5];
let result = arr.every((item,index)=> {
return item > 0;
});
result // true
6 some (檢測數(shù)組是否有某些項目符合條件)
可以理解成 || '或'的關(guān)系
let arr = [1,2,3,4,5];
let result = arr.some((item,index)=> {
return item > 2;
});
result // false