简体   繁体   中英

How to keep duplicates from being added to an array

var reservations = [];

function addReservation() {
    //Gets Input from textboxes. 
    var nameChosen = document.getElementById("txtName").value;
    var roomChosen = document.getElementById("selRoom").value; 

    //adds input into the array.
    reservations[reservations.length] = roomChosen + " ";
    reservations[reservations.length] = nameChosen + " ";

    //Gets input from radio button.
    for (i = 0; i < document.getElementsByName("Day[]").length; i++) {             
        if (document.getElementsByName("Day[]")[i].checked) {
            reservations.push(document.getElementsByName("Day[]")[i].value);
        }
    }
    for (i = 0; i < document.getElementsByName("Time[]").length; i++) {
        if (document.getElementsByName("Time[]")[i].checked) {
            reservations.push(document.getElementsByName("Time[]")[i].value);   
        }
    }                   
}

How do I ensure that if the time and day cannot be added twice to the array? Or easier yet, How do I ensure that the same name cannot be added twice to the array?

I think that you are looking for a way to break out of the for loop after you hit the first match. One way to do this is to set i to the termination condition inside the if statement, which will exit the loop.

//Gets input from radio button.
for (i = 0; i < document.getElementsByName("Day[]").length; i++) {             
    if (document.getElementsByName("Day[]")[i].checked) {
        reservations.push(document.getElementsByName("Day[]")[i].value);
        i = document.getElementsByName("Day[]").length
    }
}
for (i = 0; i < document.getElementsByName("Time[]").length; i++) {
    if (document.getElementsByName("Time[]")[i].checked) {
        reservations.push(document.getElementsByName("Time[]")[i].value);
        i = document.getElementsByName("Time[]").length
    }
}   

测试项目是否首先在数组中

if (!item in array) { array.push(item); }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM