Как искать два значения в массиве одновременно? - PullRequest
1 голос
/ 22 мая 2019

У меня есть выпадающий список select2 на моей странице, заполненный странами из таблицы в моей базе данных. Пользователь может выбрать более одной страны, образуя массив. Я хочу найти два значения в массиве. Например:

    var selvalues = $(this).val(); //["AS", "US", "CA"]

В случае изменения раскрывающегося списка, если "US" является одним из значений, а массив также содержит значение, которое не является "US", выдается ошибка.

Некоторые вещи, которые я до сих пор пробовал в jQuery:

$('#countriesSelect').on('change', function(){

    var selvalues = $(this).val(); 

   console.log(selvalues .some(x => x !== 'US' && x == 'US'));

   if(selvalues.includes('US') || !selvalues.includes('US')){
        console.log('You cannot choose a foreign country when current selection is US');  
    }
   if($.inArray("US",selvalues) != -1){
        $('#usregions').show().fadeIn();
        if($.inArray("US",selvalues) != -1){}
    } else {
        $('#usregions').hide().fadeOut();
    }
    $.each(selvalues, function( index, value ) {
        console.log()
        if(value == 'US' && value != 'US'){
            console.log('You cannot choose a foreign country when current selection is US');   
        } 
    });
});

Я ожидаю, что он выдаст ошибку, основанную на вышеуказанных критериях.

1 Ответ

2 голосов
/ 22 мая 2019

Работа логика.Это ошибка, если вы выбираете US и что-то еще.Это означает, что у вас есть как минимум два варианта, один из которых US.Таким образом, вам все равно, кто другие, если их много, а один - US.

if (selvalues.length > 1 && selvalues.includes('US')) { ...problem... }
...