【发布时间】:2026-02-15 01:10:01
【问题描述】:
我目前正在学习 JavaScript,我对 Array.find() 方法的回调函数如何工作感到有些困惑,
我有这个当前代码:
const numbers= [43,46,33,23,44,36,5]
function under50(num) {
return num < 50;
}
val = numbers.find(under50);
根据 Mozilla 文档:
回调 对数组中的每个值执行的函数,采用三个参数:
元素
数组中正在处理的当前元素。
索引
当前正在处理的元素在数组中的索引。
数组
调用了数组查找。
现在了解我传递元素的方法,然后对其进行迭代,一旦找到元素,它将返回值。但是,让我感到困惑的是,当我从未明确地将方法传递给 Array 时,它是如何知道元素的?如果有人可以发布一个简单的示例,那将非常有帮助
【问题讨论】:
-
你说的“我从来没有显式地传递数组的方法”是什么意思?它就在那里:
numbers.find。这是Array.prototype.find,其中Array是您的数组(numbers)。 -
你正在调用
find()on 数组,所以它知道数组是什么。您发布了一个工作示例——您还在寻找什么其他类型的示例? -
正是您向回调函数表明要继续执行的元素是什么,这里是您的 numbers 数组
-
在数组上调用
.find()的有效结果如下for (let i = 0; i < numbers.length; i++) { if (callback(numbers[i], i, numbers)) return numbers[i] }- 但是你不应该假设JS引擎只是用它替换它 - 它没有不一定。然而,不管它做什么,它都会达到同样的效果。
标签: javascript arrays methods callback