Javascript for循环中生成的警报太多

Javascript for循环中生成的警报太多,javascript,json,for-loop,Javascript,Json,For Loop,我正在尝试删除json葡萄酒列表中的葡萄酒,如果json文件中不存在葡萄酒,我想弹出一个警报。但是列表中的每一个i都会弹出警报。想不出一种方法来让if语句在转到else之前完成它 function slettVin(){ var slettInput = document.getElementById('slettInput'); var slettInput_v = slettInput.value; for(wine=0; wine<dataHent.wines

我正在尝试删除json葡萄酒列表中的葡萄酒,如果json文件中不存在葡萄酒,我想弹出一个警报。但是列表中的每一个i都会弹出警报。想不出一种方法来让if语句在转到else之前完成它

function slettVin(){
    var slettInput = document.getElementById('slettInput');
    var slettInput_v = slettInput.value;
    for(wine=0; wine<dataHent.wines.length; wine++){
        if (dataHent.wines[wine].catalog == slettInput_v){
            dataHent.wines.splice(wine,1);
            var request = new XMLHttpRequest();
            request.open("POST","writeWine.php",false);
            request.setRequestHeader('Content-type','application/x-www-form-urlencoded');
            request.send("wines="+JSON.stringify(dataHent));
            fjernDiv();
            spesieltValg();
            slettInput.value ='';
            break;
        }
        else {
            alert('This wine doesnt exist');
        }
    }
}
函数slettVin(){
var slettInput=document.getElementById('slettInput');
var slettInput_v=slettInput.value;

对于(wine=0;wine在完成整个循环之前,您无法判断葡萄酒是否不存在。请使用变量来判断您是否找到了葡萄酒

var dataHent={
葡萄酒:[{
目录:“aaa”
}, {
目录:“bbb”
}, {
目录:“ccc”
}]
};
函数slettVin(){
var slettInput=document.getElementById('slettInput');
var slettInput_v=slettInput.value;
var wine_found=假;
用于(葡萄酒=0;葡萄酒


单击
抱歉,Barmar,但它不起作用。我也考虑过标记。不断弹出。谢谢你!我缺少一个
}
,这有帮助吗?我刚刚测试了我的代码,它起作用。如果你键入“aaa”发现it警报,如果您键入zzz,则it警报不存在。Jepp它正在工作。Tks为您的时间m8。我无法理解为什么标记不工作!!!