TransWikia.com

Filter no array voltando nulo

Stack Overflow em Português Asked on November 15, 2021

Estou com a seguinte dúvida, estou com essa const

export const STATUS = [{
  0: 'Rascunho',
  1: 'Enviado',
  2: 'Processando',
  9: 'Processado',
  3: 'Agendado',
  4: 'Protocolizado',
  5: 'Suspenso',
  6: 'Erro protocolo',
  7: 'Erro processamento',
  8: 'Erro leitura',
}];

e estou tentando acessar os valores usando o seguinte método

  public constantFormatter(params) {
    const status = STATUS.filter((p) => p === params.value);
  }

porém esta sempre retornando vazio e não estou conseguindo entender o porque, será que alguém já teve o mesmo problema ?

One Answer

Isto é porque STATUS é um array de objetos com dentro os seus status, e você está iterando neste array e não nos valores do objeto do mesmo, se você sabe que os seus valores existem dentro ao primeiro objeto deste array você poder usar o Object.values que irá retornar um array a partir dos valores do objeto passado. Exemplo:

const STATUS = [{
  0: 'Rascunho',
  1: 'Enviado',
  2: 'Processando',
  9: 'Processado',
  3: 'Agendado',
  4: 'Protocolizado',
  5: 'Suspenso',
  6: 'Erro protocolo',
  7: 'Erro processamento',
  8: 'Erro leitura',
}];

function findValue(value){
  // Values agora é um array de Strings que contém todos os valores do objeto que está na posição 0 do array STATUS
  const values = Object.values(STATUS[0]);
  
  return values.find(v => v === value);
}

console.log(findValue('Enviado')); // Enviado

Antes de prosseguir fazendo perguntas a outras pessoas sobre como resolver certos problemas te aconselho a antes fazer um debug do seu código, faça um console.log das suas variáveis, veja qual é o valor delas em determinado momento, faça uso do debbuger, este tipo de problema você pode resolver simplesmente olhando o valor das variáveis.

Answered by Leo Letto on November 15, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP