Подскажите как правильно выполнить поиск в массиве
Добрый день, у меня есть массив в котором нужно сделать фильтр по определенному слову.
Этот код находит первый массив с совпадением: var arr = ['Горшок цветов красных','Ваза пеньков синих','Горшки фиолетовые','бумага']; function findPartial( a, s ){ for( var i = 0; i < a.length; ++i ) if( a[i].indexOf( s ) >= 0 ){ return a[i]; } }; alert(findPartial( arr, "Горш" )); Нужна примерно такая же функция, но с выводом: arr = ['Горшок цветов красных','горшки фиолетовые',]; я так понимаю надо заменить .indexOf ?:-? |
var arr = ['Горшок цветов красных','Ваза пеньков синих','Горшки фиолетовые','бумага']; function findPartial( a, s ){ var r = []; for( var i = 0; i < a.length; ++i ) if( a[i].indexOf( s ) >= 0 ){ r.push(a[i]); } return r; }; alert(findPartial( arr, "Горш" )); |
Artur_Hopf,
var arr = ['Горшок цветов красных','Ваза пеньков синих','Горшки фиолетовые','бумага']; function findPartial( a, s ){ return a.filter(function(b) { return b.indexOf( s ) >= 0 }) }; alert(findPartial( arr, "Горш" )); |
alert( ['Горшок цветов красных','Ваза пеньков синих','Горшки фиолетовые','бумага'].filter(function(item){ return item.indexOf('Горш')>-1; }).join('; ') ); |
Вам, наверное, нужно ещё приделать toLowerCase к обеим строкам.
|
brizing,
спасибо, в самый раз :yes: |
Цитата:
|
Часовой пояс GMT +3, время: 21:43. |