Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

437
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!