使用js-arrow函数作为参数

using js arrow function as a parameter

本文关键字:参数 函数 js-arrow 使用      更新时间:2023-09-26

我使用箭头函数将参数传递给其他函数。它看起来有点像:

someFunction(parameter1, () => {
  return model.associatedGroups.filter(group => {
    return group.isAssociated === true;
   })
}, parameter3)

但当我调试它时,我在调用的方法上收到了一个函数,而不是一个经过过滤的数组。我应该如何编写它才能返回经过筛选的数组?

您只是在传递对函数的引用。

就地调用函数以将其结果作为参数传递:

someFunction(
  parameter1, 
  (() => model.associatedGroups.filter(group => group.isAssociated === true))(), 
  parameter3
)

或者只通过过滤器的结果:

someFunction(
  parameter1, 
  model.associatedGroups.filter(group => group.isAssociated === true), 
  parameter3
)

或者按原样传递函数,并在someFunction中调用它以获得结果。

这是因为传递的是函数,而不是数组。如果你想要这个函数的结果,你必须调用它

此外,使用箭头函数,如果只有一行,则不需要输入"return"。

试试这个:

someFunction(parameter1, (() => model.associatedGroups.filter(group => group.isAssociated === true))(), parameter3)

编辑:这是足够的:(

someFunction(parameter1, model.associatedGroups.filter(group => group.isAssociated === true), parameter3)