Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Filtrando dados

Boa noite.

Tenho uma dúvida, no curso você mostra como filtrar uma lista com computed properties. Um exemplo parecido com esse:

filterOrders: function() {
  if (this.filter) {
    var exp = new RegExp(this.filter.trim(), 'i');
    return this.orders.filter(order => exp.test(order.user));
  } else {
    return this.orders;
  }
}

Até aí tudo bem, comparo minha string com order.user ( a chave user do meu objeto ). Queria saber como comparar com duas chaves? Por exemplo: order.user && order.product.

Consigo filtrar com os dados de todas as chaves usando Object.values, mas no caso queria filtrar apenas com essas duas.

2 respostas
solução!

Não sei se entendi sua pergunta, é isso que você quer?

filterOrders: function() {
  if (this.filter) {
    var exp = new RegExp(this.filter.trim(), 'i');
    return this.orders.filter(order => exp.test(order.user) &&  exp.test(order.product) );
  } else {
    return this.orders;
  }
}

Nesse caso, o elemento só será selecionado se ambas e o resultado das duas expressões forem true, basta uma falsa para não mostrar. Lógica booleana básica, sem mistério.

A lógica de implementação é com você, mas o mais importante é lembrar que filter só considerará o elemento se você retornar true.

Sucesso e bom estudo meu aluno.

No meu caso era "exp.test(order.user) || exp.test(order.product)", mas é isso mesmo, deu certo, obrigado.