Поиск из массива , если есть убираем если нет добавляем

Рейтинг: 1Ответов: 1Опубликовано: 10.03.2023

Я хочу сделать так, чтобы цикл for искал из массива. Если на массиве есть совпадающий значение то убираем его , а если нет то добавляем . Но хочу добавить 1 раз а не много.

let names = ['Milk','Apple','Juice','Robot'];
function findWith(Name) {
    let namesLength = names.length;
    for(let i = 0; i < namesLength; i++) {
        if(Name === names[i]) {
        //    Если есть то показываем его или удаляем его
        console.log(names)
        } else {
            // Если нет то добавляем его  ОДИН РАЗ !
            names.push(Name)
        }
    }
}
// У меня не работает
findWith('Cat') // Нужно добавить
findWith('Milk') // Нужно удалить или показать

Ответы

▲ 2Принят

можно пройти по массиву, прервать функциию, если значение нашлось, и добавить только, если не встретилось нужного значения

let names = ['Milk','Apple','Juice','Robot'];
function findWith(Name) {
    let namesLength = names.length;
    for(let i = 0; i < namesLength; i++) {
        if(Name === names[i]) {
        //    Если есть то показываем его или удаляем его
           console.log(names)
           return
        } 
    }
    // Если нет то добавляем его  ОДИН РАЗ !
    names.push(Name)
}
// У меня не работает
findWith('Cat') // Нужно добавить
findWith('Milk') // Нужно удалить или показать