Compartilhar filtro para qualquer palavra independente se não digitar ela por completo

let arr = ['JoVeM', 'aBacAte']

let search = 'jo'

function filterSearch() {
        return arr.filter(item => {
	    if(item.toLowerCase().includes(search.toLowerCase())) {
	        return item
	    }
	})
}

filterSearch() -> retorna ['JoVeM']

Rafazion, ótima função, compartilha um pouco mais de informação como o método funciona e o retorno do comando para aqueles que ainda estão aprendendo o básico da programação... vai agregar muito valor!

juanwoc, é uma ótima observação vou tentar explicar da forma que interpreto.

A busca filterSearch é muito útil para quando retorno um array de uma api e quero buscar um dado específico da listagem no campo de busca.

No método estou fazendo o filtro por cada elemento do array que seria nesse caso 2 items ['JoVeM', 'aBacAte'].

o método toLowerCase() converte as palavras de Camel Case (Maiúsculo) para (Minúsculo) fica no caso ['jovem', 'abacate'], e em seguida utilizo o .includes() que no caso acima seria existe 'jo' dentro de algum item do array, se exister o caracter me retorna as palavras referentes.

para ficar mais claro a explicação segue outro exemplo com mais uma palavra com Jo.

let arr = ['JoVeM', 'JoãO', 'aBacAte']

let search = 'jo'

function filterSearch() {
        return arr.filter(item => {
	    if(item.toLowerCase().includes(search.toLowerCase())) {
	        return item
	    }
	})
}

filterSearch() -> retorna ['JoVeM', 'JoãO']