当前位置: 首页 > news >正文

暑期前端训练day3

js/ts 高阶函数复习

常见的高阶函数一般有以下几个:map、filter、forEach、reduce、sort、some、every、find、findIndex,并且都是针对数组的。

高阶函数:

高阶函数的注意事项:
(1) 都是数组内的方法
(2) 性能问题,比传统的for稍慢。
(3) 内部回调的this的绑定不确定,需要自己显式绑定。

(1) reduce函数

本质就是一个累加器,可以帮助我们实现一种“累加”操作。

const arr = [1, 2, 3, 4]const su = arr.reduce((pre, cur, index, arr) => {return pre + cur 
}, 0)  // su = 10 

上述操作实现了最简单的一种用法,现在我们通过这个来描述一下每个参数,Array.Prototype.reduce(callback, 初始值),初始值肯定是最先定义的,callback的参数为:
pre: 上一次执行回调函数的结果, 如果是第一次就使用初始值。
cur: 当前索引到的值。
index: 当前的索引
arr: 数组对象
最后一次执行回调的结果就是返回值。

还要一个复杂的场景,需要用到其他的回调进行链式调用,可以看看最终输出什么。

const obj = {name: "cjy", age: 18, handsome: true, strong: true 
} 
const newObj = Object.keys(obj).filter((key, idx, arr) => { if(key !== 'handsome'  || key !== 'strong') return false return true 
}).reduce((preObj, key, idx, arr) => {return {...preObj, [key]: obj[key]}
}, {}) 
(2) sort函数

这个函数很有意思,对于c/c++的sort的回调,例如:

#include<bits/stdc++.h> 
using namespace std; int main() {int q[] = {3, 2, 4, 1, 5}; sort(q, q + 5, [](int x, int y) => {// true的排在前,false排在后return x < y // x > y })return 0;
}

但是js的:

let arr = [3, 5, 4, 1, 2] 
arr.sort((a, b) => {// 当是返回负数的时候,a在b前。// 否则额a在b后。// 为0位置不变。// 并且排序具有稳定性。return a - b  
}) 

个人觉得最难的就是这几个了,其他的就是依葫芦画瓢,可以举一反三。

http://www.lryc.cn/news/579777.html

相关文章:

  • RNN案例人名分类器(完整步骤)
  • Linux常见指令以及权限理解
  • 网安系列【1】:黑客思维、技术与案例解析
  • 实现如何利用 Kafka 延时删除 用户邮箱的验证码(如何发送邮箱+源码) - 第一期
  • Web攻防-文件上传黑白名单MIMEJS前端执行权限编码解析OSS存储分域名应用场景
  • 二叉树题解——二叉树的层序遍历【LeetCode】队列实现
  • 热血三国建筑攻略表格
  • SciPy 安装使用教程
  • 【agent实战】用Agentic方案构建智能附件处理聊天服务
  • Element UI 完整使用实战示例
  • 智能设备远程管理:基于OpenAI风格API的自动化实践
  • 每日算法刷题Day41 6.28:leetcode前缀和2道题,用时1h20min(要加快)
  • Java中Stream流的使用
  • 低代码实战训练营教学大纲 (10天)
  • Linux内核驱动(前言、工程环境搭建及linux系统移植)(7.3)
  • 计算机科学导论(10)什么是BIOS
  • 设计模式-观察者模式、命令模式
  • STM32要学到什么程度才算合格?
  • HTTP详细介绍
  • 【BurpSuite 2025最新版插件开发】基础篇7:数据的持久化存储
  • serviceWorker缓存资源
  • P1073 [NOIP 2009 提高组] 最优贸易
  • 【数字后端】- 衡量design的congestion情况
  • 【HarmonyOS】应用开发拖拽功能详解
  • MySQL 8.0 OCP 1Z0-908 题目解析(17)
  • 高边驱动 低边驱动
  • IOC容器讲解以及Spring依赖注入最佳实践全解析
  • 【数据结构】哈希——闭散列/开散列模拟实现(C++)
  • 魔术方法__call__
  • Java的SpringAI+Deepseek大模型实战之会话记忆