Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

438
Visualizações
Ramda: ¿Cómo eliminar claves en objetos con valores nulos, matrices vacías y listas vacías recursivamente?

Similar a Ramda: ¿Cómo eliminar claves en objetos con valores vacíos? pero estoy buscando algo que funcione recursivamente. Esto es para que pueda solucionar una "característica" de AJV y JSON Schema donde null !== undefined .

Empecé con esto... que es eliminar los valores nulos pero no funciona recursivamente

 import R from 'ramda'; describe('filter null values', () => { it('should filter out null values', () => { const specimen = { tasks: [ { id: 'foo', blank: '', zero: 0, nool: null }, { nool: null }, { id: '', blank: null, zero: 0, nool: null }, ], useless: { nool: null }, uselessArray: [{ nool: null }], nool: null, }; const expectation = { tasks: [ { id: 'foo', blank: '', zero: 0 }, { id: '', zero: 0 }, ], }; const removeNulls = R.reject(R.equals(null)); expect(removeNulls(specimen)).toEqual(expectation); }); });
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Asignar el elemento pasado. Si el valor es un objeto (o una matriz), llame recursivamente a removeNulls en el valor actual. Después de asignar los valores, rechace todos los valores no undefined , null o vacíos que no sean cadenas (consulte R.isEmpty ).

 const { pipe, map, when, is, reject, ifElse, F, either, isEmpty, isNil } = R; const removeNulls = pipe( map(when(is(Object), v => removeNulls(v))), reject(ifElse(is(String), F, either(isEmpty, isNil))), ); const specimen = {"tasks":[{"id":"foo","blank":"","zero":0,"nool":null},{"nool":null},{"id":"","blank":null,"zero":0,"nool":null}],"useless":{"nool":null},"uselessArray":[{"nool":null}],"nool":null}; const result = removeNulls(specimen); console.log(result);
 <script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.27.1/ramda.min.js" integrity="sha512-rZHvUXcc1zWKsxm7rJ8lVQuIr1oOmm7cShlvpV0gWf0RvbcJN6x96al/Rp2L2BI4a4ZkT2/YfVe/8YvB2UHzQw==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda