Javascript Undefined不是每个循环的函数
我希望为数组中的每个项运行一个函数。数组每次都不同,但为此,我将使用一个示例数组。它一直在说undefined不是一个函数,我假设undefined是foreachfunction。解决这个问题的办法是什么Javascript Undefined不是每个循环的函数,javascript,function,foreach,Javascript,Function,Foreach,我希望为数组中的每个项运行一个函数。数组每次都不同,但为此,我将使用一个示例数组。它一直在说undefined不是一个函数,我假设undefined是foreachfunction。解决这个问题的办法是什么 const bar1beats = [0.5, 1, 2.5] generate.addEventListener('click', generateclick) function generateclick(){ // error line bar1beats.forEach(f
const bar1beats = [0.5, 1, 2.5]
generate.addEventListener('click', generateclick)
function generateclick(){
// error line
bar1beats.forEach(foreachfunction());
function foreachfunction(item, index){
let interval = intervals[Math.floor(Math.random() * intervals.length)]
interval();
if(interval == fifthfunction){
findnotefifth()
}
if(interval == fourthfunction){
findnotefourth()
}
}
你基本上是在给forEach
未定义的而不是你的函数。正如您所说,什么将传递foreachfunction
的返回值
要修复此问题,请删除括号:
函数generateclick(){
//注:我删除了括号。
bar1beats.forEach(foreachfunction);
功能foreachfunction(项目、索引){
let interval=interval[Math.floor(Math.random()*interval.length)]
间隔();
if(间隔==第五个函数){
Findnotefth()
}
if(间隔==fourthfunction){
FindNotefirth()
}
}
不调用函数?为什么不直接传入它?bar1beats.forEach(foreachfunction);
“我假设未定义的是foreachfunction”-这很容易通过一些基本调试进行检查,并且应该在询问我们之前完成。看起来您已经知道解决方案,因为它与中的相同:。addEventListener('click',generateclick)