JavaScript forEach 回调

2023-12-03

我正在深入研究 Javascript 回调之类的东西。我遇到了 forEach() 函数。函数说明了一切,循环遍历列表中的每个对象。

当我查看文档我看到以下语法:

arr.forEach(callback[, thisArg])

并且文档中还提到了参数

currentValue
index
array

我偶然发现了一个 forEach 实现的简单示例:

var friends = ["Mike", "Stacy", "Andy", "Rick"];

friends.forEach(function (eachName, index){
     console.log(index + 1 + ". " + eachName);
});

这给了我明显的输出:

 "1. Mike"
 "2. Stacy"
 "3. Andy"
 "4. Rick"

我可以忍受一切的行为及其给出的结果,但我想知道为什么这是有效的,我对此感到困惑

...function (eachName, index)...

每个Name 和index 何时、何地或如何填充正确的值?或者我怎样才能看到forEach已实现,因为我猜这个在这里发挥了魔力?或者我在这里错过了一个重要的概念?


In the 链接到 MDN根据您提供的内容,您会找到答案:

三个参数(currentValue, index, array) 是回调函数的参数 (arr.forEach(callback[, thisArg])。要在您的示例中显示它:

var friends = ["Mike", "Stacy", "Andy", "Rick"];

friends.forEach(function (currentValue, index){
     console.log(index + 1 + ". " + currentValue);
});

所以当 forEach 运行时,会发生很多事情(查看 MDN 页面上的 polyfill),但在某些时候,forEach 将循环遍历数组中的项目并使用上面提到的参数调用您提供的回调。一个简化的版本是:

Array.prototype.forEach = function(callback, thisArg) {
    // ...
    for(let i = 0; let i < this.length; i++) { // "this" refers to your array here
        // Here the arguments are passend in:
        // currentValue = this[i]
        // index = i
        // array = this
        callback.call(thisArg, this[i], i, this);
    }
    // ...
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript forEach 回调 的相关文章

  • 如何在javascript中计算日出和日落?

    我正在使用appcelerator titan开发一个IOS应用程序 我想让我的应用程序在日出和日落时向用户发送本地通知 解决这个问题的一个好工具是使用 YQL 的雅虎天气 但是 雅虎天气仅供非商业用途 我正在尝试找到一个javascrip
  • 从立即调用的匿名函数表达式返回 |它去哪里?

    如果我从立即调用的匿名函数表达式返回一个对象 它会去哪里 例如 这段代码中 foo 去了哪里 function var foo return foo 这有什么有用的应用吗 从自执行函数返回一个值而不将该返回值分配给结果变量只是一个无处可去的
  • 如何修复 Nuxt 中导航器/窗口/文档未定义的问题

    我试图确定 Nuxt 应用程序内的 UserAgent 和 Retina 信息 但应用程序抛出错误并显示导航 窗口未定义 我如何在 nuxt 应用程序中获取这些信息 const userAgent navigator userAgent t
  • 检查用户是否连接到 Facebook,然后检查他是否喜欢某个页面

    有没有什么方法可以检查用户是否在我的外部页面上连接到 Facebook 而不让他们允许我的应用程序之一 同样的问题也适用于 检查用户是否喜欢某个页面 我检查了大约 20 个问题和 3 4 个教程 似乎所有问题都在讨论内部脚本 粉丝页面 应用
  • JavaScript 对象引用缓存

    我们的代码库中有很多对象 它们的名称空间是为了避免冲突 Example App local view MyView 在我在代码库中看到的大多数地方 我们使用完整路径来获取对对象的引用 并且这在同一函数中重复多次 Example functi
  • 在javascript中使用“return !0”有什么意义吗?

    如果您转到谷歌结果页面并运行rwt toString 你会看到这个函数的返回调用是 return 0 我想不出任何理由为什么这不会总是如此true 这只是一个简写吗true 还是还有更多事情发生 总是如此 但下载需要 2 个字节 0是 2
  • 使用闭包和自调用函数制作计数器

    我想知道为什么这段代码不起作用 var uniqueInteger function var counter 0 return function return counter console log uniqueInteger 0 cons
  • HTML5 服务器端事件:EventSource 与包装的 WebSocket

    HTML5 服务器发送事件 SSE API 是否只是 HTML5 WebSocket 之上的受限制的 基于事件的 API 在我看来 一个EventSource只是一个WebSocket that Cannot send data 使用tex
  • jQuery 的 css() 在应用于滚动事件时滞后

    我正在尝试实现一个简单的 固定标题 表 我知道这在理论上只能用 CSS 来完成 但是当涉及到 OSX Lion 及其消失的滚动条时 它效果不佳 所以我用 jQuery 来做 方法很简单 只有1 5行代码 inbox scroll funct
  • Bing.com 如何创建放大的缩略图?

    当我使用 Bing com 搜索图像时 我发现它们的图像经过精心裁剪和排序 当您将鼠标放在图像上时 会弹出另一个窗口 其中显示放大的图像 我想在我的程序中做同样的事情 我检查了他们页面的源代码 他们正在使用 javascript 但我仍然不
  • jQuery Blur() 在 Chrome 上不起作用

    我在 MacOSX 上运行这个http jsfiddle net q84wv http jsfiddle net q84wv on Chrome最新版本 它不会工作 在 Firefox 上运行时它工作得很好 有什么线索吗 假设您想要aler
  • 使用 Javascript / Jquery 的本地存储(不使用 HTML5)

    我想在 javascript 或 jquery 中复制本地存储概念 类似于 HTML5 但不幸的是我不知道如何开始 任何人都可以建议如何使用 javascript 或 jquery 实现本地存储 不使用 HTML5 这是一个有点愚蠢的差事
  • 光滑的轮播缓动示例

    我正在使用 Slick Carousel http kenwheeler github io slick http kenwheeler github io slick 但不知道如何合并不同的幻灯片切换 有人有例子可以分享吗 这是我目前拥有
  • 专用网络:web3.eth.getAccounts() 始终发送空数组

    我正在运行一个私人以太坊网络 我确实用https aws amazon com blockchain templates 整个设置已经完成 AWS 上的设置看起来正确 现在 我正在尝试创建帐户并检索所有这些帐户 为此 我使用以下方法 Web
  • 将 NPM 包客户端与 nuxt 结合使用

    我对 nuxt 和 javascript 非常陌生 我正在尝试弄清楚如何在客户端使用我的应用程序的依赖项 我将它们列在我的 nuxt config js 中并使用 npm 安装 我也有一个文件 plugins导入它们的目录 不确定这是否好
  • Postman - 如何计算 JSON 响应中特定对象的出现次数

    我是 JSON 和 Postman 的新手 我相信我正在尝试做一些非常简单的事情 我创建了一个 GET 请求 它将获得如下所示的 JSON 响应 在下面的例子中我想得到count响应中所有 IsArchived 属性 这些属性的数量因响应而
  • RTCDataChannel发送方法不发送数据

    我的 RTCDataChannel 遇到一个奇怪的问题 我正在对 WebRTC 进行一些研究 并且已经可以进行 WebRTC 音频 视频聊天 现在我想使用 RTCDataChannel 添加文本聊天和文件共享 我已经像这样创建了 RTCDa
  • 如何在粘贴时获取文本区域输入字段的新值?

    我发现当我尝试从文本区域字段读取值时onpaste调用函数时 我得到字段的旧值 粘贴操作之前的值 而不是新值 粘贴操作之后的值 以下是此行为的演示 http jsfiddle net qsDnr http jsfiddle net qsDn
  • ThreeJS无法加载Json文件

    首先 我已经读过这个问题 https stackoverflow com questions 17201888 three js exporter export object not working with jsonloader r58没
  • 使用 Lodash 将对象键转换为具有键值数量的数组[重复]

    这个问题在这里已经有答案了 我有一个产品对象 products bread 1 milk 2 cheese 2 chicken 1 我想要一个包含产品名称的数组 如下所示 products bread milk milk cheese ch

随机推荐

  • Heroku 部署失败:[远程拒绝] master -> master(预接收挂钩拒绝):错误:无法推送一些引用

    我将现有应用程序复制到新存储库中 它在本地工作 部署原始工作 我正在使用 PHP Yii 和 Composer 我不知道什么fxp composer asset plugin is C Users Chloe workspace affil
  • 运行 make 时出错:缺少分隔符(您的意思是 TAB 而不是 8 个空格吗?)

    我正在尝试获取 PHPphar我的 Debian VM 上安装的命令行工具如何here描述 1 下载php src 我假设它在 tmp php src中 2 建立目录 tmp phar 3 保存this作为 tmp php src ext
  • Python 二进制转换为十六进制

    我正在尝试将 python 中的二进制文件 gzipped 协议缓冲区对象 转换为字符串转义方式的十六进制字符串 例如 xFA x1C 我都尝试过 repr
  • 如何动态组合 linq 查询?

    假设我有一个表 其中包含字符串中的格式化值 nvarchar 柱子 这些值应该是由某个 const 符号分隔的字符串 让它成为分号 例如 12 0 5 dog four values separated by a semi colon or
  • AppWidgetProvider:未调用 onEnabled 方法

    我有显示来自内容提供商的数据的小部件 我想知道内容提供商中的数据何时发生变化 据我所知 这样做的方法是 context getContentResolver registerContentObserver 但是当我添加小部件的第一个实例时
  • Swift 选项 - 从“x”到“x”的条件转换警告始终成功

    我想知道是否有办法关闭 避免 xcode 中的 黄色 警告if let NSUserDefaults构造其中键具有已知值的结构 例如 if let x NSUserDefaults standardUserDefaults integerF
  • 带投影的 CreateCriteria 不会选择所有列

    我的问题就像Grails 投影未返回所有属性且未分组 我有以下标准 def sharedDocumentsInstanceList SharedDocuments createCriteria list params createAlias
  • Angular HttpClient 方法不转换响应类型

    刚刚开始使用新的 HttpClient 但每当我拨打电话时 响应都不会使用提供的类型进行转换 我尝试了接口和类 现在我假设您只能使用接口来转换为响应 因为这是我们在文档中看到的唯一示例 我宁愿使用一个类在模型中包含一些辅助函数 有没有办法以
  • Git 工作流程 - 设置构建流程

    免责声明 我已经使用 Git 一段时间了 但仍然觉得它令人困惑 我正在为一个项目设置构建过程 但在更新 git 存储库时遇到问题 我在服务器上创建了存储库 假设为 C MyProject 我使用 SourceTree 将我的计算机连接到存储
  • 地图和过滤器内的 setState

    最近在学习react native中的map和filter方法 有一个问题 找到数组的特定行 带过滤器 后 如何仅设置该特定行的特定字段 我有 this state post id 0 author Duffy Duck delay 1 p
  • 使用 RTC 源代码管理获取已更改文件的文件名、位置和作者

    我正在尝试访问给定流的已更改文件的文件名 位置和作者 下面的代码是我到目前为止所拥有的 看看api文档 这似乎不可能 这可以使用 java api 或其他方法来实现吗 IChangeSetSearchCriteria c IChangeSe
  • 在 C# 中定义操作系统版本

    我有一个问题 我找不到在编译时检测 Windows 版本的方法 我的目的是创建一个依赖于接口的可执行文件 该接口仅在特定版本的Windows中定义 因此 为了制作可执行的跨 Windows 版本 我希望能够为特定 Windows 版本定义包
  • Python while 循环中的准确睡眠/延迟

    我有一个 while True 循环 它将变量发送到外部函数 然后使用返回的值 该发送 接收过程具有用户可配置的频率 该频率是从外部 ini 配置文件中保存和读取的 我尝试过 time sleep 1 Frequency 但考虑到其他地方使
  • Java 中的作用域规则

    有人可以帮助我理解 Java 中的作用域规则吗 这显然是无效的 int i 0 System out println i fine of course System out println i syntax error i被宣布在 而且在外
  • 访问动态分配数组的越界元素/无 SegFault

    我正在用 C 语言开发一个程序 它使用链表数组 原始哈希表 作为数据类型来表示某些日期信息 该数组有 12 个元素 对应于一年中的月份 每个月都有一个包含数据节点的链表 我开发了使用这种数据类型的模块 并且运行良好 后来我发现我正在访问越界
  • GCM 演示服务器向设备发送消息引发 401 错误

    与许多其他 java 和 android 新手一样 我尝试在 Windows 上运行 gcm 演示服务器和 gcm 演示客户端 使用 eclipse 运行虚拟设备 使用 tomcat 作为网络服务器 我在注册和取消注册设备方面没有任何问题
  • objectAtIndexedSubscript 在 IOS5 中可用吗?

    文档称它在 MacOS 1 08 中可用 那么故事是怎样的呢 iOS5呢 这是一个非常重要的选择器 因为 self 5 实际上会变成 self objectAtIndexedSubscript 5 除非我遗漏了一些东西 在 NSOrdere
  • 如何使用初始值设定项列表构造 std::array 对象? [复制]

    这个问题在这里已经有答案了 可能的重复 如何使用初始化器列表初始化成员数组 您可以使用初始值设定项列表构造 std array std array
  • UIDatePicker 设置最大日期

    我使用此代码来阻止用户超出我设置的限制 在视图中确实加载了 NSDate Date NSDate date DatePickerForDate setMinimumDate Date DatePickerForDate setMaximum
  • JavaScript forEach 回调

    我正在深入研究 Javascript 回调之类的东西 我遇到了 forEach 函数 函数说明了一切 循环遍历列表中的每个对象 当我查看文档我看到以下语法 arr forEach callback thisArg 并且文档中还提到了参数 c