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

423
Views
¿Cómo escribir funciones cuando el tipo de valores es diferente?

Tengo un problema con hacer que mi función sea más inteligente. Logro buenos resultados, pero pienso en la otra solución.

Puedo tomar boolean u object como parámetro. Cuando el parámetro es el object , me gustaría mantenerlo como ahora. Cuando el parámetro es un valor boolean , me gustaría crear un objeto, donde las claves se toman de otra variable (menos importante) y los valores son este boolean .

Mi solución asume

  • agregando un objeto de elementos vacíos al principio
  • leyendo qué es un tipo de valor y configurando elementos de acuerdo con las condiciones
  • tomar elementos y convertirlos en una matriz
  • guardando la matriz en el estado

¿Eso esta bien?

revisa mi codigo

 const onAddAll = value => { let items = {} if (typeof value === 'boolean') { terms.forEach(term => items[ term ] = value) } if (typeof value === 'object') { items = value } const checked = Object.keys(items).filter(k => items[ k ]) setChecked(checked) }

Imo, no necesitaría la segunda condición y la haría más inteligente, pero no tengo idea de cómo. ¡Por favor ayuda!

lo uso aquí

 <Checkbox items={getItems()} onChange={onAddAll} > <label className="sr-only"> {i18n.t('DROPDOWN.SELECT_ALL')} </label> </Checkbox>

y aquí

 <Dropdown> {[ 'all', 'none' ].map((key, i) => ( <li key={key} className="dropdown__item"> <div className="dropdown__link" onClick={onAddAll.bind(this, !i)}> {i18n.t(`DROPDOWN.${key.toUpperCase()}`)} </div> </li> ))} </Dropdown>
about 4 years ago · Juan Pablo Isaza
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!