遇到的问题
误认为computed不是响应式的
过滤器 filters
需要处理数据的渲染时候调用 {{数据 | 过滤器 }}
<td>{{book.price|showPrice}}</td>
filters:{
showPrice(price){
return '¥ '+ price.toFixed(2)
}
},
for 中 in 和 of 的区别
in 拿到的是数组下标, of拿到是数组对象
编程范式:
命令式编程/声明式编程
面向对象编程(第一公民:对象)/ 函数式编程(第一公民:函数)
高阶函数 filter/map/reduce
<script>
// filter/map/reduce
// filter的回调函数有一个要求,必须返回一个布尔值
// 当返回True时函数内部自动将这次回调的n加入新的数组中
//当返回False时,函数内部会过滤掉这次的n
// filter函数的使用
const nums = [10, 20, 111, 444, 40, 50, 222]
let newNums = nums.filter(function (n) {
return n < 100
})
console.log(newNums);
//map函数会更新原先数组的数据
let new1Nums = newNums.map(function (n) {
return n*2
})
// reduce作用对数组内的所有内容进行汇总
let total = new1Nums.reduce(function (preValue , n) {
return preValue + n
}, 0)
// 0 是初始值
// 第一次: preValue 0 n 20
// 第二次: preValue 20 n 40
// 第三次: preValue 60 n 80
// 第四次: preValue 140 n 100
//最后 return 240
let totalNum = nums.filter(function (n) {
return n < 100
}).map(function (n) {
return n*2
}).reduce(function (preValue , n) {
return preValue + n
}, 0)
let totalNum1 = nums.filter(n => n<100).map(n=> n*2).reduce((preValue, n)=>preValue+n);
console.log(totalNum1)
</script>