2016-09-12 3 views
-1

Что я пытаюсь сделать, это выбрать вариант, основанный на URL-адресе. Итак, что я сделал до сих пор, это получить URL-адрес и сопоставить его с параметрами. Затем сохранили совпадения в массиве, затем я удалил несколько терминов, таких как «http», «org» и т. Д. Я смог сузить его до двух ключевых слов.выберите опцию на основе массива терминов

Теперь мне нужно выбрать параметр, соответствующий одному из ключевых слов в массиве.

Я попытался использовать «фильтр», содержащий: и карту, но он работает только, если я использую один термин и массив, у меня есть ряд терминов. Поэтому мне нужно знать, как это сделать, это выбрать и опцию, основанную на первом совпадении. Из текста опции в член в массиве.

//this is my arr 
var arr = ["Pro_life", "Inactive"] 

//this is the text from the options 
FB_Ext_Pro_life_Specific_Inactive 
FB_register_now 

мне нужно найти способ, чтобы выбрать «FB_Ext_Pro_life_Specific_Inactive» сроком от моего массива. У кого-нибудь есть идеи?

+0

вы можете включить больше кода – depperm

+1

Просто фильтр с обоими вариантами и выполнить команду «или»? ('||') Или «и», если вам нужно, чтобы оба они были найдены ('&&') – DBS

+0

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

ответ

1

я не получил свой вопрос полностью, но я сумел сделать это

var arr = ["Pro_life", "Inactive"] 
 

 
var options = ["FB_Ext_Pro_life_Specific_Inactive", "FB_register_now", "sample_Inactive__"] 
 

 
for (var x = 0; x < arr.length; x++) { 
 
    for (var y = 0; y < options.length; y++) { 
 
    if (options[y].indexOf(arr[x]) != -1) { 
 
     console.log("Option " + options[y] + " matches with " + arr[x]); 
 
    } 
 
    } 
 
}

Он использует indexOf() для проверки, если ключевое слово совпадает с опцией

0

Может быть вы можете это сделать;

var arr = ["Pro_life", "Inactive"], 
 
    str = "FB_Ext_Pro_life_Specific_Inactive\nFB_register_now", 
 
result = str.split("\n") 
 
      .filter(s => arr.some(k => s.indexOf(k) !== -1)); 
 
console.log(result);