未看到数组更改(其他线程?)



我有一个递归函数,它按顺序执行以下任务:

  1. 打印作为参数传递的数组A
  2. 将一些新值连接到其中:A=A.concat(localList(
  3. 再次打印阵列A
  4. 运行for循环,每次迭代都会再次调用该函数

虽然打印三明治显示了正确的连接,但我注意到不同的(并行?(实例并不承认其他实例所做的更改。数组不是作为引用传递的吗?

我包含了最少的信息,因为我觉得这是我错过的一些基本事实。

Array.concat返回一个新实例。为了保持引用的完整性,您可以插入这样的列表:
yourarray.push.apply(yourarray, newitems)

或者更现代的变体:

yourarray.push(...newitems)

需要明确的是,如果使用多个线程(Worker(,这仍然不起作用,因为Worker之间传递的对象是克隆的。

最新更新