Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Подскажите как правильно выполнить поиск в массиве (https://javascript.ru/forum/misc/73231-podskazhite-kak-pravilno-vypolnit-poisk-v-massive.html)

Artur_Hopf 30.03.2018 14:01

Подскажите как правильно выполнить поиск в массиве
 
Добрый день, у меня есть массив в котором нужно сделать фильтр по определенному слову.
Этот код находит первый массив с совпадением:
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 ?:-?

brizing 30.03.2018 14:06

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, "Горш" ));

рони 30.03.2018 14:13

Artur_Hopf,
var arr = ['Горшок цветов красных','Ваза пеньков синих','Горшки фиолетовые','бумага'];

function findPartial( a, s ){
   return a.filter(function(b) {
     return b.indexOf( s ) >= 0
 })
};

alert(findPartial( arr, "Горш" ));

Nexus 30.03.2018 14:13

alert( ['Горшок цветов красных','Ваза пеньков синих','Горшки фиолетовые','бумага'].filter(function(item){
	return item.indexOf('Горш')>-1;
}).join('; ') );

brizing 30.03.2018 14:16

Вам, наверное, нужно ещё приделать toLowerCase к обеим строкам.

Artur_Hopf 30.03.2018 14:18

brizing,
спасибо, в самый раз :yes:

brizing 30.03.2018 14:19

Цитата:

Сообщение от Artur_Hopf (Сообщение 481882)
brizing,
спасибо, в самый раз :yes:

Версия рони правильнее.


Часовой пояс GMT +3, время: 21:43.