如何在数组中同时搜索两个值?

时间:2019-05-22 17:40:38

标签: jquery arrays jquery-select2 dropdown

我的页面上有一个select2下拉列表,其中填充了数据库表中的国家/地区。用户能够选择一个以上的国家,从而形成一个数组。我想在数组中搜索两个值。例如:

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

在下拉菜单的change事件中,如果“ 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 个答案:

答案 0 :(得分:2)

工作逻辑。如果您选择US和其他选项,则会出错。意味着您至少有两个选择,其中一个是US。因此,只要存在多个且一个是US,您就不必在乎其他是什么。

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