You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript嵌套函数如何获取参数?以findIndex回调参数note为例

const findNote = function(array, lookedUp) {
    const index = array.findIndex(function(note){
        return note.title === lookedUp
    })
    return array[index]
}

原理说明

  • 你传入findIndex的匿名函数是回调函数,这类函数不需要开发者手动调用、手动传参,是由JS内置的findIndex方法内部自动调用、自动注入参数的。
  • findIndex运行时会遍历调用它的所属数组(也就是你代码里的array),每遍历到一个数组元素,就会自动按顺序传入3个参数给回调:
    1. 当前遍历到的数组元素,你的代码里用note形参来接收这个值
    2. 可选:当前元素对应的数组下标
    3. 可选:调用findIndex的原数组本身
  • 你疑惑的「传入findNote的参数会不会自动传递给findIndex」不成立:findIndex只会从它所属的调用数组里取遍历值,和外部函数参数没有自动传递逻辑,只是你刚好把findNote接收的array作为了findIndex的调用主体而已。

直观示例

你可以运行这段代码验证逻辑:

const testArr = [1, 2, 3]
testArr.findIndex(function(item, index) {
  console.log(`遍历到元素:${item},对应下标:${index}`)
  return item === 2
})
// 控制台输出:
// 遍历到元素:1,对应下标:0
// 遍历到元素:2,对应下标:1

示例里的item、index都没有手动传入实参,都是findIndex遍历过程中自动注入的。

内容的提问来源于stack exchange,提问作者blgotkn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 04:30:03