【问题标题】:Function invocation shorthand in LodashLodash 中的函数调用简写
【发布时间】:2017-03-28 03:29:24
【问题描述】:

我想使用 Lodash 执行一系列函数。人为的例子:

const functions = [
    () => console.log('Fn 1'),
    () => console.log('Fn 2')
];

_(functions).each(fn => fn());

在我上面的代码中是否有一个 Lodash 内置函数可以执行 fn => fn() 的等效操作?我认为_(functions).each(_.invoke) 或类似名称会更清楚地表达代码的意图。

【问题讨论】:

  • 看起来你已经在使用最好的速记了。
  • 是的,我怀疑我是。我找不到任何更具可读性的东西。我对它没有任何真正的问题,但fn => fn() 第一次看到它时看起来很奇怪。这是一个非常小的挑剔:)
  • 据我所知,Lodash 没有任何方法。
  • 你为什么专注于使用 lodash?
  • () 函数调用“速记”。

标签: javascript ecmascript-6 lodash


【解决方案1】:

虽然您的代码没有错,但如果您仍然想要 lodash 解决方案,则可以使用 invokeMapinvokeMap 将在每次迭代后调用一个函数(不是你的函数数组)。此外,您可以将参数传递给正在调用的函数。

const functions = [
    () => console.log('Fn 1'),
    () => console.log('Fn 2')
];

_.invokeMap(functions, Function.prototype.call);

【讨论】:

  • 很好,这是一个有趣的方法。这比头脑更长,但也可以说更具可读性,尽管它需要更多的理解。我想我会保留我的解决方案,但这基本上就是我想要的,谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-08
  • 1970-01-01
  • 2018-10-29
  • 2017-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多