shownum(){ for (let i inthis.books){ console.log(i) //获取索引值i }
数组元素的获取:
1 2 3 4
showitem(){ for (let item ofthis.books){ console.log(item) //获取数组元素item }
🎉 一般的编程范式?
编程范式:命令式编程/声明式编程
编程范式:面向对象编程(第一公民:对象)/函数式编程(第一公民:数组)
🎉 高阶函数 filter?
filter 中的回调函数有一个要求:必须返回一个布尔值
true:当返回 true 时,函数内部会自动将这次回调的 n 加入到新的数组中
false:当返回 false 时,会默认过滤掉这次的 n
1 2 3
let newarr = filter(function (n) { return n < 100; });
🎉 高阶函数 map?
对数组的所有元素进行一次变化处理可以采用 map 函数
1 2 3
let newarr2 = newarr.map(function (n) { return n * 2; });
🎉 高阶函数 reduce?
对数组中所有元素进行汇总可以用 reduce
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
let total = newarr2.reduce(function (preValue, n) { return100; }, 0); //第一次:preValue 0 n 20 //第二次:preValue 100 n 40 //第三次:preValue 100 n 80 //第四次:preValue 100 n 100 let total = newarr2.reduce(function (preValue, n) { return preValue + n; }, 0); //第一次:preValue 0 n 20 //第二次:preValue 20 n 40 //第三次:preValue 60 n 80 //第四次:preValue 140 n 100 //最终返回 240
🎉 高阶函数嵌套?
一步式实现需求。
1 2 3
const nums = [10,20,30,40,50,60]; let total = nums.filter(n => n<100).map(n => n*2).reduce((pre,n) => pre + n);