【前端面试】七、算法-迭代器和生成器
目录
1.迭代器
2.生成器
1.迭代器
- lterator:也被称作游标Cursor,是一种设计模式。迭代器提供了一种遍历内容的方法(比如 JS 迭代器中的next),而不需要关心内部构造。
// 迭代器的遍历const s = new Set([1,2,3,4,5])const it = s.values()// console.log(it); // SetIterator {1, 2, 3, 4, 5}const it1 = s.values()// console.log([...it1]); // [1, 2, 3, 4, 5]const it2 = s.values()for (const val of it2) {// console.log(val); // 1 2 3 4 5} let val = nullwhile(!(val = it.next()).done) {// console.log(val);// {value: 1, done: false}// {value: 2, done: false}// {value: 3, done: false}// {value: 4, done: false}// {value: 5, done: false}}/* Array.from(arrayLike, mapFn, thisArg)arrLike:想要转换成数组的伪数组对象或可迭代对象mapFn:如果指定了该参数,新数组中的每个元素会执行该回调函数thisArg:可选参数,执行回调函数 mapFn 时 this 对象 */const it3 = s.values()const arr = Array.from(Array(5), it3.next, it3).map(x => x.value) // [1, 2, 3, 4, 5]
2.生成器
Generator:生成器,也是一种设计模式,用于构造复杂对象, JS 中的生成器,用于构造迭代器。
- 简化语法、写起来少考虑一些变量
- 节省空间(示例中函数体不需要定义数组承载值)
- 分散执行片段(节省单位时间的处理量),对于单线程的前端非常重要
- 构造异步语法
// 生成器构造无穷斐波那契数列function* fibonacci() {let [prev, curr] = [1, 1]yield prevyield currwhile(true) {[prev, curr] = [curr, prev + curr]yield curr}}const fib = fibonacci()const fib10 = Array.from(Array(10), fib.next, fib).map(x => x.value)// console.log(fib10) // [1, 1, 2, 3, 5, 8, 13, 21, 34, 55]// Generator异步语法function request (url) {return cb => {setTimeout(() => {cb(url)}, 1000)}}function createRunner (genFunc) {const it = genFunc()function run (data) {const result = it.next(data)if (result.done) returnresult.value(run)}return run}createRunner(function* () {const res1 = yield request('url1')console.log(res1)const res2 = yield request('url2')console.log(res2)})()
相关文章:
【前端面试】七、算法-迭代器和生成器
目录 1.迭代器 2.生成器 1.迭代器 lterator:也被称作游标Cursor,是一种设计模式。迭代器提供了一种遍历内容的方法(比如 JS 迭代器中的next),而不需要关心内部构造。 // 迭代器的遍历const s new Set([1,2,3,4,5])const it s.values()//…...
vs+qt一些问题
一直遇到的两个问题,今天解决了 1、 因为前后端分离,前端写完了,后端还在一直修改,但是每次都是单独打开的后端的sln,所以会出现这个,把前端的模块删掉就好了。 2、打开vs项目,很多报错&#…...
基于K8S配置Jenkins主从节点实例
基于K8S配置Jenkins主从节点实例 1.配置Jenkins主节点1.确认 Jenkins Pod 名称2.进入 Jenkins Pod:3.生成SSH密钥对4.将公钥复制到目标节点: 2.配置Jenkins的node1节点1.安装java2.配置 Jenkins node1节点的 Java 路径1.添加Java环境变量2.生效Java环境变…...
萱仔环境记录——git的安装流程
最近由于我有一个大模型的offer,由于我只在实验室的电脑上装了git,我准备在自己的笔记本上本地安装一个git,也给我的一个师弟讲解一下git安装和使用的过程,给我的环境安装章节添砖加瓦。 github是基于git的一个仓库托管平台。 g…...
品味食家巷蛋奶酪饼,感受西北美食魅力
在广袤的西北大地,美食的丰富多样令人叹为观止。而食家巷蛋奶酪饼,宛如一颗璀璨的明珠,散发着独特的魅力。 这款蛋奶酪饼,是传统工艺与现代口味的完美融合。而当你继续品尝,鸡蛋的鲜嫩和奶酪的浓郁醇厚便会在口中交融…...
常用的图像增强操作
我们将介绍如何用PIL库实现一些简单的图像增强方法。 [!NOTE] 初始化配置 import numpy as np from PIL import Image, ImageOps, ImageEnhance import warningswarnings.filterwarnings(ignore) IMAGE_SIZE 640[!important] 辅助函数 主要用于控制增强幅度 def int_param…...
探索TinyDB的轻量级魅力:Python中的微型数据库
文章目录 探索TinyDB的轻量级魅力:Python中的微型数据库背景:为何选择TinyDB?什么是TinyDB?如何安装TinyDB?5个简单的库函数使用方法3个场景下的应用实例常见问题与解决方案总结 探索TinyDB的轻量级魅力:Py…...
模型优化学习笔记—Adam算法
首先复习一下: 动量梯度下降: 1、算出dw、db 2、计算指数加权(移动)平均 vdw k *vdw (1-k)*dw vdb k *vdb (1-k)*db 3、梯度下降 w w - r*vdw b b - r*vdb RMSprop: 1、算出dw和db 2、算指数平均值&am…...
车辆出险报告(h5)-车辆出险记录接口-车辆相关接口
接口简介:通过vin及行驶证查询车辆出险、理赔、事故记录接口。查询成功率99%,返回URL地址的查询报告。 不能对返回的报告进行任何的修改,否则由用户自行承担相应的责任 报告结果只保留30天,如需永久保存,请您查询后自行保存 接口地…...
C基础项目(学生成绩管理系统)
目录 一、项目要求 二、完整代码实例 三、分文件编写代码实例 一、项目要求 1.系统运行,打开如下界面。列出系统帮助菜单(即命令菜单),提示输入命令 2.开始时还没有录入成绩,所以输入命令 L 也无法列出成绩。应提…...
C# 设计模式之原型模式
总目录 前言 在软件系统中,当创建一个类的实例的过程很昂贵或很复杂,并且我们需要创建多个这样类的实例时,如果我们用new操作符去创建这样的类实例,这未免会增加创建类的复杂度和耗费更多的内存空间,因为这样在内存中…...
美林数据Tempo Talents | 两大资源中心,打造开放、成长型数智人才能力平台
在数字化时代的大潮中,高校作为知识与人才培养的重要阵地,独立分散的课程资源管理方式已无法满足现代教育的需求,而数据资源的分散和碎片化也阻碍了科研和教学工作的深入进行。那么,高校如何打造一个集中、高效的课程与数据资源中…...
IDC权威认可!工业领域最佳实践案例!
近日,IDC发布了《工业领域中数据管理分析服务最佳实践案例》报告,总结行业用户在应用过程中面临的主要挑战和实践路径,并评选最佳实践案例,为行业用户提供了相关的指导建议,供市场参考。星环科技中航电梯数据中台项目入…...
未授权访问漏洞系列详解①!
Redis未授权访问漏洞 Redis 默认情况下,会绑定在 0.0.0.0:6379 ,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,这样将会将 Redis 服务暴露到公网上,如果在没有设置密码认证(一般为空)的…...
第1天:Python基础语法(五)
正文: 在之前的文章中,我们已经学习了Python的基本语法集合和集合的一些常用操作。 在本篇文章中,我们将继续学习其他类型 字符串格式化 使用操作符%s来实现 ➢ 几个%s就几个变量 ➢ 超过一个变量时,需要用元组%(…...
【c++】用C++制作一个简易windows系统
源码: #include <iostream> #include <cstdlib> // 为了使用system #include<limits> void clearScreen() {system("cls"); }void displayMenu() {clearScreen();std::cout << "1.我的文件" << std::endl;std::…...
常见锁策略
目录 1.乐观锁/悲观锁 2.重量级锁/轻量级锁(轻量重量是站在加锁开销的角度) 3.挂起等待锁/自旋锁 4.公平锁/非公平锁 5.可重入锁与不可重入锁 6.读写锁 synchronized 面试题:是什么偏向锁? 锁的升级: 锁消除&…...
【机器学习】人工神经网络优化方法及正则化技术
🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 💫个人格言: "如无必要,勿增实体" 文章目录 人工神经网络优化方法及正则化技术1. 引言2. 神经网络优化的基础2.1 损失函数2.…...
Django异步请求和后台管理实战
项目概述 项目实现Ajax异步请求局部刷新使用XAdmin后台模板提供图片上传接口在明细页应用了富文本编辑器在加载图书信息的时候使用LazyLoad(图片懒加载) # 环境 asgiref3.7.2 crispy-bootstrap32024.1 defusedxml0.7.1 diff-match-patch20230430 Djang…...
大奖放送 | AI编程达人秀视频文章征集大赛来啦!
AI Coding,可以有多少种打开玩法?腾讯云AI代码助手是一款辅助编码工具,基于混元大模型,提供技术对话、代码补全、代码诊断和优化等能力,为你生成优质代码,帮你解决技术难题,提升编码效率。 我…...
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...
html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...
