2015-08-20 2 views
0

У нас есть $.inArray(searchString, array) функция в jQuery, но это будет искать точное соответствие строки в значениях, присутствующих в массиве. Но как проверить строку в массиве, как indexOf?Как сопоставить шаблон с массивом в JavaScript?

Например, возьмем строку «mark_zuck», и если массив выглядит следующим образом: ["mark", "sheryl", "zuck"]. Мы можем сделать это, используя цикл сравнения каждого значения в массиве с заданной строкой, как,

for (i=0; i<array.length; i++) { 
    searchString.indexOf(array[i]); 
} 

Я ищу лучший способ осуществить это. Пожалуйста помоги.

+0

@Archer Что вы имеете в виду под "разобрать массив"? –

+0

Я удалил свои комментарии, так как оказалось, что я ошибся! atinder опубликовал почти правильное решение. – Archer

ответ

1
array.filter(function(a){ 
    return searchString.indexOf(a) !== -1; 
} 
+1

Это должно быть 'return searchString.indexOf (a)! == -1;' – Archer

+0

yip пропустил это. спасибо за исправление. – atinder

+1

Не беспокойтесь. Спасибо, что узнали что-то: D – Archer

0

Вы можете использовать array.some также

var monthNames = ["mark", "sheryl", "zuck"]; 
var chk = 'mark_zuck'; 

var test = monthNames.some(function(e) {  
    return chk.indexOf(e); 
}); 
console.log(test); 

Fiddle: http://jsfiddle.net/haqk2snr/

Смежные вопросы