Javascript 为什么alert()可以工作3次?

Javascript 为什么alert()可以工作3次?,javascript,Javascript,我有一部分代码,其中警报(“错误的单词!”)重复3次,然后停止: let input=prompt(“您想翻译什么?”,”); 让单词=[{ “苹果”, 你的单词:“一些单词” }, { “葡萄”, 你的单词:“一些单词” }, { 英语单词:“菠萝”, 你的单词:“一些单词” }]; for(设i=0;i

我有一部分代码,其中
警报(“错误的单词!”)
重复3次,然后停止:

let input=prompt(“您想翻译什么?”,”);
让单词=[{
“苹果”,
你的单词:“一些单词”
}, {
“葡萄”,
你的单词:“一些单词”
}, {
英语单词:“菠萝”,
你的单词:“一些单词”
}];
for(设i=0;i

为什么会发生这种情况,以及如何修复它?

之所以会发生这种情况,是因为警报在一个循环中,并且条件已检查了3次

在这里,我稍微修改了代码

循环的
条件块中使用
标志
,并检测是否未找到单词。这样做的好处是,一旦找到匹配项,我们就可以停止执行它。如果需要,可以使用
break
。但由于您使用的是else条件,因此需要一个标志

为了澄清,最后一个是三元运算符,用于检查是否找到该单词。如果不是,它会警告错误的单词

let input=prompt('您想翻译什么?','');
让单词=[
{en_单词:“苹果”,你的单词:“ббббб”,
{en_单词:“葡萄”,你的单词:“葡萄”,
{en_单词:“菠萝”,你的单词:“菠萝”}
];
让FLAG=false;

对于(i=0;i你可以这样做。这是一种更干净的方法。当你找到匹配的时候,打破循环

let  input = prompt('What do you wanna to translate?','');  
let words = [                         
    {en_word: "apple",  your_word: "яблуко"},
    {en_word: "grapes",  your_word: "виноград"},
    {en_word: "pineapple",  your_word: "ананас"}
];

let isFound = false;  
for(let i = 0; i < words.length; i++){
    if(input == words[i].your_word){
        alert(words[i].en_word);
        isFound = true;
        break;
    }
}

if(!isFound) alert("wrong word!");
let input=prompt('您想翻译什么?','');
让单词=[
{en_单词:“苹果”,你的单词:“ббббб”,
{en_单词:“葡萄”,你的单词:“葡萄”,
{en_单词:“菠萝”,你的单词:“菠萝”}
];
让isFound=false;
for(设i=0;i
因为条件检查了3次