[PROMOÇÃO] Assine com + 30% de desconto ANUAL MENSAL (últimas horas)
Roberto Noya
Criador Roberto Noya 20/12/2019

Olá Carlos,

Estou estudando o curso de Vuejs e estou no item 10 “Avançando com componentes” aula 12 “Filtro de tarefas no Vue JS”.

Procuro sempre realizar as aulas respeitando as devidas versões dos programas utilizados em aula. Entretanto, também procuro executar os mesmos exercícios em versões atuais.

Estou com a seguinte dependência:

"vue": "^2.6.11"

Sobre a aula consegui executar na versão atual, porém surgiram algumas dúvidas:

Segue minha função

computed: {

        filterList(){

            if(this.filter === ''){

                return this.languages  

            }else{               

                return this.languages.filter(

                    filterLang => filterLang['name'].toLowerCase().includes(this.filter.toLowerCase())

                )

            }

               

        }

    },

Esse filtro funciona corretamente filtrando pelo nome. Entretanto, não consegui declarar mais de um parâmetro para ser filtrado. Exemplo: filter['name', 'id'] onde desejo filtrar pelo id também.

Outro ponto, gostaria de saber se existe algum recurso no Vuejs para filtrar quando o usuário pesquisa utilizando carácter especial. No caso, gostaria que o filtro considerasse palavras tanto com acento ou sem.

Vamos supor que exista a palavra “prestação”. Se o usuário digitar “prestacao” o programa deverá considerar com carácter especial também.

Obrigado pela força

Manager Carlos Ferreira 20/12/2019

Olá, Roberto!
Tudo bem?

Para esse caso você pode usar a função map, ela vai te atender melhor.

Faça o teste:
const languages = this.languages.filter( (language, index) => {
    if (language['name'] == this.filter.toLowerCase() || language['id'] == this.filterId) {
        return language
    }
})

return languages

Carlos Ferreira
Sabe a Solução? Ajude a resolver!

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!