编程范式:1、声明式编程2、命令式编程 编程范式:面向对象式编程(主要角色:对象);函数式编程(主要角色:函数)
例子:1、需求取出所有小于100的数字
let newnums=[]
for(let i of nums){
if(n<100){
newNums.push(n)
}
}
1.1高阶函数
filter 中的回调函数:必须返回一个布尔值,返回false不加入 新的数组,反之加入
(filter 、map 、reduce)
const nums =[2,4,700,45]
let newNums =nums.filter(function(n){
return n<100
}
console.log(newNums)
1.2 高阶函数maps的运用
let new2Nums =newNnums.map(function(n){
return n*2
})
console .log(new2Nums)
js 定義兩個相同的函數是下面一個覆蓋上面一個,TS則是重構 1.3reduce函數的使用 reduce 作用对数组中所有的内容进行汇总
news.Nums.reduce()
new2Nums.reduce(fnction(preValue.n)
{
return 100
}
},0
)
分析過程1、prevalue n 0 2 100 4 100 700 100 45 prevalue就是返回的值
1.3.1
reduce 作用对数组中所有的内容进行汇总
news.Nums.reduce()
new2Nums.reduce(fnction(preValue.n)
{
return n+preValue
}
},0
)
分析過程1、prevalue n 0 2 2 4 6 700 706 45 prevalue就是返回的值 706+45=751
总结
简洁写法
const nums
let total =nums .flter(function(n){
return n<100
}).map(function(n){
return n*2}).reduce preValue +n
},0)
console.log(total);
}
簡介寫法2箭头函数
let total=nums.filter(n=> n<100).map(n => n*2).reduce((pre,n) => pre+n);
console.log(total);
|