gpt4 book ai didi

javascript - 如何停止 if 语句的 for in 循环

转载 作者:行者123 更新时间:2023-11-28 11:20:44 25 4
gpt4 key购买 nike

var enemies = [
{
nick: "Bob1",
x: 12,
y: 21
},
{
nick: "Bob2",
x: 20,
y: 21
},
{
nick: "Bob3",
x: 12,
y: 21
}
]
var me = {
x: 19,
y: 20
}

for (var x in enemies) {
var enemy = enemies[x];
if ((Math.abs(me.x - enemy.x) <= 1 && Math.abs(me.y - enemy.y) <= 1)) {
console.log("Enemy In range");
} else {
console.log("Enemies not in range");
}
}

大家好。我有一群敌人,我正在检查是否有某个敌人距离我的 x 或 y 位置 1 个字段。我只想记录一次,无论是否存在。正如您现在所看到的,它会检查每个敌人并记录每个敌人。这不是我想要的。我只是想简单地检查是否有任何敌人 1 场远离我的 x 或 y 位置,并得到简单的回答"is"或“否”。我完全是新手,但如果您对我有任何提示,那就太棒了!

最佳答案

有一个 bool 值,例如 found,以 false 开头。找到它后,将其设置为 truebreak。然后在循环之后if (found) ... else ...。这会将打印移出循环,确保您只获得一次。

此外,您可以使用新的 some 对其进行大量压缩。方法,其内部执行基本相同的操作(只是更快):

let found = enemies.some(enemy => enemyIsClose(enemy, me));

如果你确实需要找到哪个敌人靠近,find而不是some将返回第一个,而filter将返回所有其中。

关于javascript - 如何停止 if 语句的 for in 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51833152/

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