Javascript сплит шартты

Міне, біз бармақпыз, айнымалыларым бар:

var possible_country = 'United States|Germany|Canada|United Kingdom';
var current_country = 'United States';

Мен шартты функция ретінде пайдалануды қалаймын

function dummy(c, p){
 var arr = p.split('|');

 /* Code I want */

 if(c === arr[0] || c === arr[1] || c === arr[2] || c === arr[3])
 {
  alert('Voila');
 }
}

Осылайша, мен ұқсас функцияны шақыра аламын

dummy(current_country, possible_country);
0
Сіз тек барлық елдер арқылы айналдыра алмайсыз ба? (Мен arr сөзінде айтып отырмын) және сіз пайдаланған жағдайды жасаңыз, бірақ if (c == arr [i])
қосылды автор Fire-Dragon-DoL, көзі
var isValidCountry =/^ (United States | Germany | Canada/United Kingdom) $/ if (isValidCountry.test (ел)) деген сөзді көргім келеді.
қосылды автор Lee Kowalkowski, көзі

4 жауаптар

Массив үшін .indexOf әдісін қолданыңыз:

var possible_country = 'United States|Germany|Canada|United Kingdom';
var current_country = 'United States';

possible_country = possible_country.split('|'); //Split by |
alert(possible_country.indexOf(current_country)); //Search for the current_country inside fo possible_country.

Функция ретінде:

function dummy(current, possible) {
    var arr = possible.split('|');
    if (arr.indexOf(current) != -1) {
        alert('voila');
    }
}
1
қосылды

indexOf керек деп ойлаймын:

function dummy(c, p){
 var arr = p.split('|');

 if(~arr.indexOf(p)) {//arr contains p as one of its elements
  alert('Voila');
 }
}
1
қосылды
@Lee Kowalkowski: indexOf алапта жоқ болса, -1 мәнін қайтарады. ~ -1 === 0 болса, ~ егер ол жоқ болса және шындықты (егер 0 ), егер ол болып табылады .
қосылды автор pimvdb, көзі
+1, ~ кодын қызықты пайдалану.
қосылды автор Frédéric Hamidi, көзі
@Lee, indexOf() (ол Javascript 1.6 және одан жоғары нұсқаларында қол жетімді) -1 элемент табылмаса, қайтарады. Javascript битовый операторлары екі толықтыруды қолданатындықтан false мәнін бағалайтын ~ 1 - 0 .
қосылды автор Frédéric Hamidi, көзі
Мен не болдым? ~ - бұл битальды емес ЕСКЕРІМ емес? Бұл қалай жұмыс істейді? IndexOf тіпті JS 1.6 дейін массивтер үшін қол жетімді емес.
қосылды автор Lee Kowalkowski, көзі
Мәселен, ол// битальды емес, содан кейін жаңа синтаксис емес. Босатылды! Шындығында қызықты, бірақ менің бөлігімнен қашып кету мүмкін емес.
қосылды автор Lee Kowalkowski, көзі
~ -1 әрқашан жалған болады (-1 шын болып табылады - барлық биттерді орнатқан мағынасында) қалған барлық (-1) шын болады.
қосылды автор El Ronnoco, көзі
О, мен мұны көремін
қосылды автор oknoorap, көзі

Бұл?

function dummy(c, p){
  var arr = p.split('|');
  for (var i in arr)
    if (arr[i]===c)
      alert("OK");
  alert("KO");
}
0
қосылды

Түтік жолағын соңында ұстасаңыз

var possible_country = 'United States|Germany|Canada|United Kingdom|';

тек бір жолды тексеру қажет болады:

if (possible_country.indexOf(current_country + '|') > -1)
{
    alert('Voila');
}
0
қосылды