【面试题】forEach能跳出循环吗?

news2025/1/12 21:00:22

前端面试题库 (面试必备)            推荐:★★★★★

地址:前端面试题库

【国庆头像】- 国庆爱国 程序员头像!总有一款适合你!

如果面试官,或者有人问你foreach怎么跳出循环,请你大声的告诉ta,跳不出!!!!!!!!!!

foreach 跳不出循环

为什么呢?

先看看foreach大体实现。

Array.prototype.customForEach = function (fn) {
    for (let i = 0; i < this.length; i++) {
        fn.call(this, this[i], i, this)
    }
}

list.customForEach((item, i, list) => {
    console.log(item, i, list)
})

let list = [1,2,3,4,5]

list.forEach((item,index,list)=>{
    console.log(item,index,list)
})

list.customForEach((item,index,list)=>{
    console.log(item,index,list)
})

image.png

两个输出的结果是一样的没啥问题,这就是foreach的大体实现,既然都知道了它的实现,那么对它为什么跳不出循环♻️应该都知道了,再不清楚的话,再看一下下面的例子。


function demo(){
    return 'demo'
}

function demo2(){
    demo()
    return 'demo2'
}

demo()

在demo2函数里面调用demo函数,demo函数的return能阻止demo2函数下面的执行吗?很明显不行啊,demo函数里的return跟demo2函数一点关系都没有。现在你再回头看看foreach的实现,就明白它跳不出循环一清二楚了。

有点同学说不是可以通过抛出错误跳出循环吗?是的。看看下面例子。


let list = [1,2,3,4,5]

try {
    list.forEach((item, index, list) => {
        if (index === 2) {
            throw new Error('demo')
        }
        console.log(item)
    })
} catch (e) {
    // console.log(e)
}

image.png

结果是我们想要,但是你看代码,哪个正常人会这样写代码?是非foreach不用吗?还是其他的循环关键字不配呢。

end

有反驳在评论区,show me your code !!!!!!!!!

前端面试题库 (面试必备)            推荐:★★★★★

地址:前端面试题库

【国庆头像】- 国庆爱国 程序员头像!总有一款适合你!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1016931.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode 2596. 检查骑士巡视方案

【LetMeFly】2596.检查骑士巡视方案 力扣题目链接&#xff1a;https://leetcode.cn/problems/check-knight-tour-configuration/ 骑士在一张 n x n 的棋盘上巡视。在有效的巡视方案中&#xff0c;骑士会从棋盘的 左上角 出发&#xff0c;并且访问棋盘上的每个格子 恰好一次 。…

关于感恩教师的演讲稿格式及范例

关于感恩教师的演讲稿格式及范例 感恩教师的演讲稿格式应该是&#xff1a;开头感谢听众&#xff0c;正文部分根据题目内容书写&#xff0c;结尾部分再次感谢听众。 以下是一篇关于感恩教师的演讲稿的例子&#xff1a; 尊敬的老师&#xff0c;亲爱的同学们&#xff1a; 大家好…

循环结构在反汇编中特征

本文将使用IDA分析C语言中循环结构(do while&#xff0c;while&#xff0c;for)在反汇编中的特征 目录 IDA分析 do whhile 循环 IDA分析 while 循环 IDA分析 for 循环 do while while和for哪个效率高 IDA分析 do whhile 循环 测试代码 #include <stdio.h> int main…

基于SSM框架的《超市订单管理系统》Web项目开发(第二天)完成登录模块和用户退出模块

《超市订单管理系统》&#xff08;第二天&#xff09; 基于SSM框架的Web项目开发 ​ 昨天我们实现了登录功能&#xff0c;但是用的是模拟数据。今天我们要链接数据库整合SpirngMybatis&#xff0c;读取数据库中的真实数据&#xff0c;用来跟我们输入的userCode和userPassword进…

iText实战--根据绝对位置添加内容

3.1 direct content 概念简介 pdf内容的4个层级 层级1&#xff1a;在text和graphics底下&#xff0c;PdfWriter.getDirectContentUnder() 层级2&#xff1a;graphics层&#xff0c;Chunk, Images背景&#xff0c;PdfPCell的边界等 层级3&#xff1a;text层&#xff0c;Chun…

2023年商会研究报告

第一章 行业发展概况 1.1 定义和功能 商会&#xff0c;通常被称为商业协会或商业会所&#xff0c;是由具有相似的行业、商业、贸易、专业或地理背景的企业和商家所组成的组织。这些组织的核心目标是促进其会员之间的交流、合作和互助&#xff0c;进而推动相关行业或商业领域的…

Docker Swarm集群部署

Docker Swarm集群部署 任务平台 3台虚拟机&#xff0c;一台作为manager 节点&#xff0c;另两台作为work节点。 文章目录 Docker Swarm集群部署安装docker配置防火墙开放端口在 manager 节点创建 Swarm 集群创建用于swarm服务的自定义的overlay网络测试跨主机容器通信 安装do…

Python教程:@符号的用法

嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 &#x1f447; &#x1f447; &#x1f447; 更多精彩机密、教程&#xff0c;尽在下方&#xff0c;赶紧点击了解吧~ python源码、视频教程、插件安装教程、资料我都准备好了&#xff0c;直接在文末名片自取就可 符号在 Pyth…

LLC谐振变换器软启动过程分析与问题处理

启动步骤 1.使用Burst模式升压至200V—稳定的充电5S钟&#xff0c;保证所有电容完全充满。 Burst模式过程&#xff1a;1.开启一次脉冲发送–>判断母线电压大小&#xff0c;确定下次启动脉冲的时间档位–>连续启停控制–>不断给电容充电–>进入200V稳定充电状态–…

Acwing.240 食物链(并查集)

题目 动物王国中有三类动物A,B,C&#xff0c;这三类动物的食物链构成了有趣的环形。A吃B&#xff0c;B吃C&#xff0c;C吃A。 现有N个动物&#xff0c;以1–N编号。 每个动物都是A,B,C中的一种&#xff0c;但是我们并不知道它到底是哪一种。有人用两种说法对这N个动物所构 成…

深度融入垂直行业是物联网未来发展必由之路

三年疫情&#xff0c;打断了很多企业的发展进程。但是疫情已过似乎整个业界生态有了一个很大变化。有一个朋友前一段时间参加深圳电子展后有一个感悟&#xff0c;说的很好&#xff1a;“疫情后有很大变化&#xff0c;疫情后&#xff0c;整个环境状态和疫情前有很大不同。无论企…

opencv练习-案例

import cv2 as cv import numpy as np from matplotlib import pyplot as plt %matplotlib inline图像分割是计算机将图像分割成多个区域的过程 使用阈值分割图像&#xff0c;产生两个区域 打开图像文件 img cv.imread(snake.png,cv.IMREAD_COLOR) gray cv.cvtColor(img,c…

OmniShade - Mobile Optimized Shader

OmniShade Pro是一款专为移动设备设计的高性能着色器。它包含多种技术,使其几乎可以实现从现实到卡通到动漫的任何外观,但由于自适应系统仅计算任何功能集所需的内容,它的速度也非常快。 它旨在弥合Unity的标准着色器和移动着色器之间的差距,但由于其高级别的风格化、组合…

系统架构设计师(第二版)学习笔记----信息安全基础知识

【原文链接】系统架构设计师&#xff08;第二版&#xff09;学习笔记----信息系统基础 文章目录 一、信息安全的概念1.1 信息安全的基本要素1.2 信息安全的内容1.3 设备安全的内容1.4 数据安全的内容1.5 内容安全的含义1.6 行为安全的含义 二、 信息存储安全2.1 信息存储安全的…

怎么实现一个登录时需要输入验证码的功能

今天给项目换了一个登录页面&#xff0c;而这个登录页面设计了验证码&#xff0c;于是想着把这个验证码功能实现一下吧。 这篇文章就如何实现登录时的验证码的验证功能结合代码进行详细地介绍&#xff0c;以及介绍功能实现的思路。 目录 页面效果 实现思路 生成验证码的控制…

水仙花数(熟悉Python后再写)

CSDN问答社区的一个提问&#xff0c;勾起我当时写代码的烦困。 (本笔记适合熟悉一门编程语言的 coder 翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Free&#xff1a;大咖免费“圣经”教程《 python 完全自学教程》&#xff0c;不仅仅是…

Vulnhub实战-DC9

前言 本次的实验靶场是Vulnhub上面的DC-9&#xff0c;其中的渗透测试过程比较多&#xff0c;最终的目的是要找到其中的flag。 一、信息收集 对目标网络进行扫描 arp-scan -l 对目标进行端口扫描 nmap -sC -sV -oA dc-9 192.168.1.131 扫描出目标开放了22和80两个端口&a…

【C语言基础】操作符、转义字符以及运算法大全,文中附有详细表格

&#x1f4e2;&#xff1a;如果你也对机器人、人工智能感兴趣&#xff0c;看来我们志同道合✨ &#x1f4e2;&#xff1a;不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 &#x1f4e2;&#xff1a;文章若有幸对你有帮助&#xff0c;可点赞 &#x1f44d;…

【学习笔记】Java 一对一培训(第一部分)开发工具介绍和安装

【学习笔记】Java 一对一培训&#xff08;第一部分&#xff09;开发工具介绍和安装 关键词&#xff1a;Java、Spring Boot、Idea、数据库、一对一、培训、教学本文主要内容含开发工具总体介绍、JDK安装、IntelliJ IDEA 安装、MySQL安装、Navicat安装、Redis和RDM安装等计划30分…

Java:升序数组插入一个元素,结果依旧是升序

有一个升序的数组&#xff0c;要求插入一个元素&#xff0c;该数组顺序依然是升序。该数组{10&#xff0c;12&#xff0c;40&#xff0c;70} package input.java; import java.util.Scanner; public class lizi2 {public static void main(String[] args){int temp 0;int arr…