es6數組新增6個方法
1.map (映射)1個對一個 進去什么最后return 什么 不會改變原數組,返回一個新的數組,對應參數:item 每次的值,當前索引,原來數組 arr
例子:
成績對應等級
let arr =[22,55,67,33,99,70];
let result = arr.map((item,index,arr)=>{
return item>60?'及格':'不及格';
})
console.log(result)
2.reduce (匯總) 1堆對一個 求和或者求平均數
let store = [22,44,33,56,70,83,80]
let total = store.reduce((temp,item,index)=>{
//temp是每次的臨時變量是第n次和第n+1次的臨時和,item是每次要往上加的值,index是每次循環的index
console.log(temp,item,index)
return temp+item;
})
console.log(total)
要是求平均數 就應該再最后一次時用總數除以數組的長度。
let store = [22,44,33,56,70,83,80]
let total = store.reduce((temp,item,index)=>{
//temp是每次的臨時變量是第n次和第n+1次的臨時和,item是每次要往上加的值,index是每次循環的index
console.log(temp,item,index)
if(index!=arr.lenth-1){//不是最后一次
return temp+item;
}else{//是最后一次
return (temp+item)/arr.length;
}
})
console.log(total)
3.filter 過濾器 通過返回true或者false來確認最終的結果
let num = [2,4,76,87,35,66];
let result = num.filter(item=>item%3===0)
console.log(result);
4.forEach 循環 (迭代)
//forEach遍歷數組,無返回值,不改變原數組,僅僅只是遍歷
let arr = [2,3,4,5]
arr.forEach(item=>console.log(item))
5.every
let arr = [1,2,3,4];
let flag= arr.every((item,index,arr) =>item > 1 //結果為false
)
//遍歷數組每一項,每一項返回true,則最終結果為true。當任何一項返回false時,停止遍歷,返回false。不改變原數組
6.some
var arr = [1,2,3,4];
let num =arr.some((item,index,arr) => {
console.log(item)
return item > 1 //結果為false
})
console.log(num)
//遍歷數組每一項,有一項返回true,就返回true,當任何一項返回true時,則停止遍歷,返回true;
以上6個方法均為ES6語法,IE9及以上才支持。不過可以通過babel轉意支持IE低版本。
以上均不改變原數組。
some、every返回true、false。
map、filter返回一個新數組。
reduce讓數組的前后兩項進行某種計算,返回最終操作的結果。
forEach 無返回值。