如何在不循环两次的情况下用forEach一个接一个地执行2个函数?
How to perform 2 functions one after the other with forEach, without looping twice?
有谁知道我怎样才能做同样的事情:
Player.list.forEach(player => {
player.firstLayer();
});
Player.list.forEach(player => {
player.secondLayer();
});
但只循环一次以使其更快。
(我想执行所有玩家的所有firstLayer函数,然后执行secondLayer函数,但不循环Player.list两次)
感谢您的回答。
这是不可能的,并且在性能上没有真正的区别。大 O 符号是一种数学符号,它描述了当参数趋向于特定值或无穷大时函数的限制行为。循环一次或两次 运行 之间没有区别。 O(n) 与 O(2n) 在渐近复杂度方面的差异不存在,因为两者都具有“线性”增长率。
你唯一能做的就是
Player.list.forEach(player => {
player.firstLayer();
player.secondLayer();
});
但这会在每个元素的第一层之后直接执行第二层。如果每个元素的第二层都不同,你就无法在不再次循环的情况下做你想做的事。
有谁知道我怎样才能做同样的事情:
Player.list.forEach(player => {
player.firstLayer();
});
Player.list.forEach(player => {
player.secondLayer();
});
但只循环一次以使其更快。
(我想执行所有玩家的所有firstLayer函数,然后执行secondLayer函数,但不循环Player.list两次)
感谢您的回答。
这是不可能的,并且在性能上没有真正的区别。大 O 符号是一种数学符号,它描述了当参数趋向于特定值或无穷大时函数的限制行为。循环一次或两次 运行 之间没有区别。 O(n) 与 O(2n) 在渐近复杂度方面的差异不存在,因为两者都具有“线性”增长率。
你唯一能做的就是
Player.list.forEach(player => {
player.firstLayer();
player.secondLayer();
});
但这会在每个元素的第一层之后直接执行第二层。如果每个元素的第二层都不同,你就无法在不再次循环的情况下做你想做的事。