JavaScript:如何并行地剪切数组

4
我正在尝试使用JavaScript构建调度解决方案。目前,我已经创建了一个数组作为我的队列,每个项目都有一个延迟函数,该函数将删除自身/数组项。
我的问题是:当我有多个项在队列中删除自身时,最好的方法是什么?Splice?我假设Splice依赖于索引,因此,如果我有两个同时删除自身的数组项,我将遇到竞争条件,其中第一个将正确删除,但第二个将处于错误的索引位置,因为第一个已经对索引进行了切片。
这些项是具有嵌入式函数的JSON对象,该函数将包含自删除。
任何帮助将不胜感激。
谢谢
编辑:我应该澄清,为了使项目被删除,我首先必须遍历队列以查找对象/对象的索引,然后应用切片。
编辑2:这是一个Node.js应用程序。

1
欢迎来到 Stack Overflow!尝试编写代码,调试直到卡在某个地方,然后回到 SO 并发布一个 [MCVE]。 - ecg8
1个回答

1
我假设Splice依赖于索引,因此如果我有两个同时删除自身的数组项,我会遇到竞争条件。
不,只有一个线程运行javascript,因此您不会遇到竞争问题。因此使用.splice是完全可以的,但在这里使用.shift可能更合适。
这些项是带有内嵌函数的json对象,该函数将包含自删除。
遵循“关注点分离”的原则,最好让队列自己管理。

谢谢Jonas,我应该澄清一下,为了让项目被删除,我首先必须遍历队列以找到对象/对象的索引,然后应用splice。这仍然符合你所说的吗? - AC Buzz
是的,这适用于所有事情。 - Jonas Wilms
好的,我会写一个测试用例,并在今天晚些时候尝试一下,然后再回来告诉你结果。谢谢。 - AC Buzz
谢谢 Jonas,就像你所说的那样。 - AC Buzz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接