运行 forEach 循环中特定于子类的方法的最佳实践
Best practice for running a method specific to a subclass in a forEach loop
我正在编写一些需要连续遍历对象数组的代码。有几种类型的块,例如砖块、金属或沙子,我更新它们的位置以及玩家是否在一个 foreach 循环中触摸它们。
沙子需要有一种方法,当玩家站在上面时沙子会掉下来。 javascript 到 运行 从 foreach 循环中特定于沙子对象的方法的最佳方法是什么?
我只想在 forEach 中使用 if 语句。例如:
const playerPosition = ...
const arrayOfBlocks = [ ... ]
arrayOfBlocks.forEach(block => {
if (block.type === 'sand' && playerPosition === block.position) {
block.fall()
}
})
另一种方法是只过滤类型和位置。例如:
const playerPosition = ...
const arrayOfBlocks = [ ... ]
arrayOfBlocks
.filter(block => block.type === 'sand')
.filter(block => block.position === player.position)
.forEach(block => black.fall())
我正在编写一些需要连续遍历对象数组的代码。有几种类型的块,例如砖块、金属或沙子,我更新它们的位置以及玩家是否在一个 foreach 循环中触摸它们。
沙子需要有一种方法,当玩家站在上面时沙子会掉下来。 javascript 到 运行 从 foreach 循环中特定于沙子对象的方法的最佳方法是什么?
我只想在 forEach 中使用 if 语句。例如:
const playerPosition = ...
const arrayOfBlocks = [ ... ]
arrayOfBlocks.forEach(block => {
if (block.type === 'sand' && playerPosition === block.position) {
block.fall()
}
})
另一种方法是只过滤类型和位置。例如:
const playerPosition = ...
const arrayOfBlocks = [ ... ]
arrayOfBlocks
.filter(block => block.type === 'sand')
.filter(block => block.position === player.position)
.forEach(block => black.fall())