学习Vue.js Day05

151 阅读1分钟

遇到的问题

误认为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>