Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

filtrar json

Ola,

Estou com a seguinte duvida: tenho um json onde me retorna varios array, dentro de cada array tem o seguinte:

vendas
:
[{nsuOrigem: null, nsuAdministradora: "2481790", nrAutorizacao: "041992", redeAdquirente: 2,…},…]
0
:
{nsuOrigem: null, nsuAdministradora: "2484790", nrAutorizacao: "041992", redeAdquirente: 2,…}
1
:
{nsuOrigem: null, nsuAdministradora: "2485300", nrAutorizacao: "009498", redeAdquirente: 2,…}
2
:
{nsuOrigem: null, nsuAdministradora: "33860", nrAutorizacao: "008096", redeAdquirente: 2,…}
3
:
{nsuOrigem: null, nsuAdministradora: "2574304", nrAutorizacao: "084662", redeAdquirente: 2,…}
4
:
{nsuOrigem: null, nsuAdministradora: "48724", nrAutorizacao: "055618", redeAdquirente: 2,…}
5
:
{nsuOrigem: null, nsuAdministradora: "2490872", nrAutorizacao: "012466", redeAdquirente: 2,…}
6
:
{nsuOrigem: null, nsuAdministradora: "31946", nrAutorizacao: "034378", redeAdquirente: 2,…}
7
:
{nsuOrigem: null, nsuAdministradora: "2478172", nrAutorizacao: "528771", redeAdquirente: 2,…}

Eu preciso pecorrer todos os objeto é separar ou filtrar cada objeto que possui bandeira : 1 e descartar oque for diferente de bandeira : 1.

exemplo : se em um objeto o valor " bandeira: 2" estiver diferente de 1 descartar. em cada objeto do json possui isso:

:
{nsuOrigem: null, nsuAdministradora: "248124790", nrAutorizacao: "041992", redeAdquirente: 2,…}
agencia
:
5644
banco
:
278
bandeira
:
"2"
chaveVenda
:
3700000646
...
1 resposta
solução!

Oi Renan,

No Angular 1 era comum fazer essa filtragem através de um 'filter' no próprio HTML, porém no Angular 2+ é recomendado utilizar uma função para fazer essa filtragem.

Ficaria algo assim:

No Component, utiliza-se uma função que se por algum motivo o 'vendas' for vazio, simplesmente retorna 'vendas'. Se houver algum valor ele irá filtrar as informações de 'vendas' e verificar se o atributo 'bandeira' é igual a 1 e retornar.

obterVendas(){
    if(this.vendas.length === 0 || this.vendas === undefined){
      return this.vendas;
    }
    return this.vendas.filter((v) => {
      if(v.bandeira == "1"){
        return true;
      }else{
        return false;
      }
    });
  }

No HTML é possível iterar normalmente sobre o array.

<ul *ngFor="let venda of obterVendas()">
  <li>{{ venda.nsuOrigem }}</li>
  <li>{{ venda.nsuAdministradora }}</li>
  <li>{{ venda.nrAutorizacao }}</li>
  <li>{{ venda.redeAdquirente }}</li>
  <li>{{ venda.banco }}</li>
  <li>{{ venda.bandeira }}</li>
  <li>{{ venda.chaveVenda }}</li>
   ...
</ul>

Espero ter ajudado \\//_