学习一、函数式编程

函数式编程,缩写 FP,是一种编程风格,与面向对象、面向过程等编程范式并列。

 

函数式编程中的函数不是 function,而是 Y 与 X 的关系这一数学层面中的函数关系。

————相同的输入始终都等于相同的输出。

 

函数式编程用来描述(函数)之间的映射。

 

例:

//非函数式

let num1 = 1;

let num2 = 2;

let sum = num1 + num2;

console.log(sum);

 

//函数式

function add(num1, num2) {

return num1 + num2;

}

let sum = add(2, 3)

console.log(sum);

 

1、函数是一等公民:函数可以储存在变量中、可以作为参数、可以作为返回值。

 

//示例

const Control = {

    index(post){return View.index(post)},

    show(post){return View.show(post)},

    create(post){return View.create(post)},

}

 

//优化

const Control = {

    index: View.index,

    show: View.show,

    create: View.create,

}

 

2、高阶函数

我们可以把函数作为参数传递给另一个函数。

  function forEach(array, fn) {

    for (let i = 0; i < array.length; i++) {

      fn(array[i])

    }

  }

 

  // 测试

  //   let arr = [1, 3, 4, 7, 8]

  //   forEach(arr, function (item) {

  //     console.log(item)

  //   })

 

  function filter(array, fn) {

    let results = []

    for (let i = 0; i < array.length; i++) {

      if (fn(array[i])) {

        results.push(array[i])

      }

    }

    return results

  }

 

  // 测试

  //   let arr = [1, 3, 4, 7, 8]

  //   let r = filter(arr, function (item) {

  //     return item % 2 === 0

  //   })

  //   console.log(r)

 

我们也可以把函数作为另一个参数的返回结果。

  // 高阶函数-函数作为返回值

  function makeFn () {

    let msg = 'Hello function'

    return function () {

      console.log(msg)

    }

  }

  const fn = makeFn()

  //测试

  // fn()

  // makeFn()()

 

  // once

  function once(fn) {

    let done = false

    return function () {

      if (!done) {

        done = true

        return fn.apply({}, arguments)

      }

    }

  }

  let pay = once(function (money) {

    console.log(`支付: ${money} RMB`)

  })

  //测试

  // pay(5)

  // pay(5)

  // pay(5)

 

常用的高阶函数。

  // map

  const map = (array, fn) => {

    let results = []

    for (let value of array) {

      results.push(fn(value))

    }

    return results

  }

 

  // 测试

  // let arr = [1, 2, 3, 4]

  // arr = map(arr, v => v * v)

  // console.log(arr)

 

  // every

  const every = (array, fn) => {

    let result = true

    for (let value of array) {

      result = fn(value)

      if (!result) {

        break

      }

    }

    return result

  }


 

  // 测试

  // let arr = [9, 12, 14]

  // let r = every(arr, v => v > 10)

  // console.log(r)

 

  // some

  const some = (array, fn) => {

    let result = false

    for (let value of array) {

      result = fn(value)

      if (result) {

        break

      }

    }

    return result

  }

 

  // 测试

  // let arr = [1, 3, 5, 9]

  // let r = some(arr, v => v % 2 === 0)

  // console.log(r)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值