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

如何搜索函数数组并执行匹配到的函数?代码匹配成功却未执行

解决方法:搜索函数数组并执行匹配的函数

嘿,我看到你的问题了——你已经成功定位到了名称匹配的函数,但执行部分的代码写错啦!咱们一步步来修正:

原代码的问题

你在找到匹配函数后写了 valid_input_array.search,这行代码完全起不到执行函数的作用:valid_input_array 是数组,它根本没有 search 这个属性,所以这行相当于啥都没做。

修正后的循环版本

只需要把执行的那行改成调用找到的函数就行,也就是给函数加括号 ():

var search = 'test'; 
var valid_input_array = [ 
  function test(){console.log('test');}, 
  function abc(){console.log('abc');} 
]; 

for (i = 0; i < valid_input_array.length; i++) { 
  if (valid_input_array[i].name === search) { 
    // 直接调用匹配到的函数
    valid_input_array[i](); 
    // 如果只需要执行第一个匹配的函数,可以加break跳出循环
    break;
  } 
}

更简洁的ES6写法

如果你用的是现代JavaScript环境,用Array.find()方法可以更优雅地实现,不用手动写循环:

const search = 'test'; 
const valid_input_array = [ 
  function test(){console.log('test');}, 
  function abc(){console.log('abc');} 
]; 

// 找到名称匹配的函数
const matchedFunction = valid_input_array.find(fn => fn.name === search);

// 如果找到函数,就执行它
if (matchedFunction) {
  matchedFunction();
}

这样就能完美执行到你找到的函数啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:35:26