Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在数组中找到匹配项后如何停止javascript循环_Javascript_Arrays_Json_Loops_For Loop - Fatal编程技术网

在数组中找到匹配项后如何停止javascript循环

在数组中找到匹配项后如何停止javascript循环,javascript,arrays,json,loops,for-loop,Javascript,Arrays,Json,Loops,For Loop,我试图找到一些修复方法,但似乎没有找到我想要的。也许是我的措辞 所以我有一个表单,一旦它提交了一个5位数的邮政编码,它会检查一个数组是否有匹配的值,一旦匹配,我希望它显示一条成功消息,如果不匹配,那么就不返回匹配,但目前它返回消息的次数与数组的次数相同。我对JavaScript还相当陌生,因此非常感谢您的帮助。提前谢谢 JavaScript: <script> function getZip(e) { e.preventDefault(); var zip = doc

我试图找到一些修复方法,但似乎没有找到我想要的。也许是我的措辞

所以我有一个表单,一旦它提交了一个5位数的邮政编码,它会检查一个数组是否有匹配的值,一旦匹配,我希望它显示一条成功消息,如果不匹配,那么就不返回匹配,但目前它返回消息的次数与数组的次数相同。我对JavaScript还相当陌生,因此非常感谢您的帮助。提前谢谢

JavaScript:

<script>
function getZip(e) {
    e.preventDefault();
    var zip = document.getElementById('zip').value; // Gets the value from the text field "zip" on the form.
    var result = ["48650", "48611", "48746", "48614", "48706"];

    for (var i = 0; i < result.length; i++) {
        //console.log(result[i]);

        //if (zip.length == 5 && zip == result[i]){
        if (zip == result[i]) {
            console.log(zip + " is = to " + result[i]);
            alert('Match ' + zip);

        } else if (result[i] != zip) {
            alert("No Match1");
            console.log(zip + " is != to " + result[i]);

        } else {
            alert("No Match2");
            console.log(zip + " is != to " + result[i]);
        }
        //return false;
    }
    if (zip === "") { // Checks if the text field "zip" is empty, if so it returns an error message.
        alert('Please enter a zip code!');

    } else if (zip.length > 5) {
        alert("Please enter a valid 5 digit numeric zip code.");

    } else if (zip.length < 5) {
        alert("Please enter a valid 5 digit numeric zip code.");

    } else if (isNaN(zip)) { // Checks if the text field "zip" for alphabetic characters. The "isNaN" function is to determine if a value does not convert to a number, if so it returns an error message.
        alert("Please enter a numeric value.");
    }
}
</script>
<div class="searchZip">
    <p>Please enter your zip code for availability</p>
    <form>
        <input type="text" name="zip" id="zip" placeholder="Zip Code">
        <button onclick="getZip(event);">Check</button>
    </form>
    <p id="display"></p>
</div>

函数getZip(e){
e、 预防默认值();
var zip=document.getElementById('zip').value;//从表单上的文本字段“zip”获取值。
风险值结果=[“48650”、“48611”、“48746”、“48614”、“48706”];
对于(变量i=0;i5){
警报(“请输入有效的5位数字邮政编码”);
}否则,如果(拉链长度<5){
警报(“请输入有效的5位数字邮政编码”);
}else if(isNaN(zip)){//检查文本字段“zip”是否包含字母字符。“isNaN”函数用于确定值是否未转换为数字,如果是,则返回错误消息。
警报(“请输入数字值”);
}
}
表格:

<script>
function getZip(e) {
    e.preventDefault();
    var zip = document.getElementById('zip').value; // Gets the value from the text field "zip" on the form.
    var result = ["48650", "48611", "48746", "48614", "48706"];

    for (var i = 0; i < result.length; i++) {
        //console.log(result[i]);

        //if (zip.length == 5 && zip == result[i]){
        if (zip == result[i]) {
            console.log(zip + " is = to " + result[i]);
            alert('Match ' + zip);

        } else if (result[i] != zip) {
            alert("No Match1");
            console.log(zip + " is != to " + result[i]);

        } else {
            alert("No Match2");
            console.log(zip + " is != to " + result[i]);
        }
        //return false;
    }
    if (zip === "") { // Checks if the text field "zip" is empty, if so it returns an error message.
        alert('Please enter a zip code!');

    } else if (zip.length > 5) {
        alert("Please enter a valid 5 digit numeric zip code.");

    } else if (zip.length < 5) {
        alert("Please enter a valid 5 digit numeric zip code.");

    } else if (isNaN(zip)) { // Checks if the text field "zip" for alphabetic characters. The "isNaN" function is to determine if a value does not convert to a number, if so it returns an error message.
        alert("Please enter a numeric value.");
    }
}
</script>
<div class="searchZip">
    <p>Please enter your zip code for availability</p>
    <form>
        <input type="text" name="zip" id="zip" placeholder="Zip Code">
        <button onclick="getZip(event);">Check</button>
    </form>
    <p id="display"></p>
</div>

请输入可用的邮政编码

检查

用于中断循环

在您的情况下,不需要
,请使用检查数组是否包含元素

您还可以将HTML5
模式
属性与regex
[1-9][0-9]{4}
一起使用

var结果=[“48650”、“48611”、“48746”、“48614”、“48706”],
display=document.getElementById('display');
函数getZip(e){
e、 预防默认值();
var zip=document.getElementById('zip')。值,
消息=“”,
className='valid';
//删除类
display.classList.remove('valid')
display.classList.remove('invalid');
//检查输入的zipcode是否有效
if(/^[1-9][0-9]{4}$/.test(zip)==false){
消息='请输入有效的5位邮政编码';
className='无效';
}否则{
var index=result.indexOf(zip);
如果(索引>-1){
消息='Zip'+Zip+'在索引'+index'处找到;
}否则{
消息='Zip未在数组中找到';
}
}
//显示消息
display.innerHTML=消息;
display.classList.add(className);
}
#zip:无效,
.无效{
颜色:红色;
}
.有效{
颜色:绿色;
}

请输入可用的邮政编码

检查


中断
放在条件分支体中

函数getZip(e){ e、 预防默认值(); var zip=document.getElementById('zip').value;//从表单上的文本字段“zip”获取值。 风险值结果=[“48650”、“48611”、“48746”、“48614”、“48706”]; 对于(变量i=0;变量i=5){ 警报(“请输入有效的5位数字邮政编码”); }否则,如果(拉链长度<5){ 警报(“请输入有效的5位数字邮政编码”); }else if(isNaN(zip)){//检查文本字段“zip”是否包含字母字符。“isNaN”函数用于确定值是否未转换为数字,如果是,则返回错误消息。 警报(“请输入数字值”); } }

请输入可用的邮政编码

检查


算法可能更简单

函数getZip(e){ e、 预防默认值(); var zip=document.getElementById('zip').value;//从表单上的文本字段“zip”获取值。 风险值结果=[“48650”、“48611”、“48746”、“48614”、“48706”]; if(result.indexOf(zip)=-1){ 警报(“无匹配1”); }否则{ 警报(“匹配”+zip); } if(zip==“”){//检查文本字段“zip”是否为空,如果为空,则返回错误消息。 警报('请输入邮政编码!'); }否则,如果(拉链长度>5){ 警报(“请输入有效的5位数字邮政编码”); }否则,如果(拉链长度<5){ 警报(“请输入有效的5位数字邮政编码”); }else if(isNaN(zip)){//检查文本字段“zip”是否包含字母字符。“isNaN”函数用于确定值是否未转换为数字,如果是,则返回错误消息。 警报(“请输入数字值”); } }

请输入可用的邮政编码

检查


正如其他人所说,您可以使用
break
退出循环

但我不会使用循环。相反,我会使用函数来确定是否存在匹配:

函数getZip(e){ e、 预防默认值(); var zip=document.getElementById('zip').value;//从表单上的文本字段“zip”获取值。 风险值结果=[“48650”、“48611”、“48746”、“48614”、“48706”]; if(zip==“”){//检查文本字段“zip”是否为空,如果为空,则返回错误消息。 警报('请输入邮政编码!'); }否则,如果(拉链长度>5){ 警报(“请输入有效的5位数字邮政编码”); }否则,如果(拉链长度<5){ 警报(“请输入有效的5位数字邮政编码”);