gpt4 book ai didi

复杂数组的 Javascript 循环与 C 循环

转载 作者:太空宇宙 更新时间:2023-11-04 07:54:05 24 4
gpt4 key购买 nike

我在 node.js 中运行一些复杂的循环。但是我面临一个问题。完成循环所需的时间约为 200-300 毫秒,这是非常长的时间。如果我也将这段代码转换为 C 是否有效?或者,还有更好的方法?我尝试过使用 clusteringfork()reverse loops 但似乎没什么区别

一些示例数据

containers//每个索引上的多维二维数组都有 8 个元素的数组 类似于 [ [1,2,3,4,5,6,7,8] ... ]

deleteItems= [1,2,3]

        for (let indexi = 0; indexi < containers.length; indexi++) {
var shuoldRemove = false;
for (let indexj = 0; indexj < containers[indexi].length; indexj++)
{
for (let indexOfIPCPR = 0; indexOfIPCPR < deleteItems.length; indexOfIPCPR++){
if (containers[indexi][indexj] == deleteItems[indexOfIPCPR]){
shouldRemove = true;
shouldRemove && indexOfNextRound.splice(indexOfNextRound.indexOf(indexi),1);
}
}
}
}

上面的代码在另一个循环中。哪个更糟。

如有任何帮助,我们将不胜感激。

提前致谢

最佳答案

我认为对于非常复杂的数组,您可以通过缓存数组长度来提高速度。我看到你在每次迭代中都得到了长度。这就是应该如何更新循环以减少计算数组长度所花费的时间。请记住,现代 JS 引擎会自行进行此类优化。因此,这可能不会改变任何事情。

for (let indexi = 0, maxi = containers.length; indexi < maxi; indexi++) {
var shuoldRemove = false;
for (let indexj = 0, maxj = containers[indexi].length; indexj < maxj; indexj++)
{
for (let indexOfIPCPR = 0, maxDelete = deleteItems.length; indexOfIPCPR < maxDelete; indexOfIPCPR++){
if (containers[indexi][indexj] == deleteItems[indexOfIPCPR]){
shouldRemove = true;
shouldRemove && indexOfNextRound.splice(indexOfNextRound.indexOf(indexi),1);
}
}
}
}

关于复杂数组的 Javascript 循环与 C 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51668798/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com