案例
map(),filter()函数来进行一次操作,他们分别是做一次统一映射,和一次过滤
//filter/map/reduce
// 案例
let tAtt = [10,20,102,105];
//选出小于100的元素
//都乘以2
// 相加
let re = tAtt.filter(item=>item<100).map(item=>item*2).reduce((p,c)=>p+c)
console.log(re);//60
filter
filter函数之后,数组元素个数可能发生了改变,但是数组元素不会发生改变。变个数,元素不变
filter() 不会对空数组进行检测。
//箭头函数的写法
let arr = [1,2,3,4,5,6,7,8,9,10];
let new_arr = arr.filter((n) => { console.log(n) ; return n > 5})
//简写
let new_arr = arr.filter(n=>n<100)
console.log(new_arr)
map
map函数之后,数组元素个数不变,但是按照一定的条件转换,数组元素发生了变化。元素变,个数不变
注意: map() 不会对空数组进行检测。
//箭头函数的写法
let new_arr_dou = new_arr.map(n => { //这里的new_arr,就是上一步的到的新数组
return n*2;
})
//简写
let new_arr_dou = new_arr.map(n =>n*2)
console.log(new_arr_dou,arr);
reduce
数组方法 reduce 用来迭代一个数组,并且把它累积到一个值中。统计
注意: reduce() 对于空数组是不会执行回调函数的。
//箭头函数的写法(0是初始值)
let new_arr_add = new_arr_dou.reduce((total,n) => {
console.log(total,n);
return total + n;
},0)
//简写
let new_arr_add = new_arr_dou.reduce((total,n) =>total + n)
console.log(new_arr_add,new_arr_dou);