【问题标题】:Keep a variable in scope within _.forEach() that is not array being looped over在 _.forEach() 的范围内保留一个变量,该变量不是循环的数组
【发布时间】:2020-03-13 19:12:38
【问题描述】:

我有一个单独的数组,有时我需要根据循环数组的内容将对象推入:

let x: any[];
_.forEach(blocks, (block:any) => {
    // some code that does not matter...
    x.push(block.some.property);
});

文档说 Lodash 的 forEach() 只传入 3 个参数;值、索引和集合(假设这是初始数组/可迭代)。

有没有办法强制 x 进入 forEach() 的范围?声明它var 只是在遇到 x.push() 时出现运行时错误。我基本上用另一种方法完全解决了这个问题,但令人恼火的是没有办法坚持。

【问题讨论】:

  • ...像任何函数一样,在_.forEach() 回调中,您可以使用来自所有封闭范围的变量。你遇到了什么错误?
  • 您使用 lodash 而不是内置 Array.forEach 方法的任何具体原因?
  • @rhys_stubbs 维护别人的代码,试图符合我雇主的编码约定。我已经解决了最初的问题,但我确实想更好地理解这一点,以防我遇到另一个类似的问题......他们是这里的忠实信徒。

标签: javascript typescript foreach lodash


【解决方案1】:

尝试初始化 x 变量

let x: any[]=[];

很可能它会向您抛出此错误

【讨论】:

    猜你喜欢
    • 2016-01-14
    • 2018-08-05
    • 1970-01-01
    • 2013-02-25
    • 2023-03-24
    • 2014-11-10
    • 2017-08-27
    • 1970-01-01
    • 2020-03-20
    相关资源
    最近更新 更多