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

118
Views
¿Cómo filtro una matriz mientras excluyo condiciones específicas?

Tengo un botón que estoy deshabilitando al leer una matriz y verificar sus propiedades.

Mi matriz se ve así:

 const arr = [ {id: '1', name: 'SOME_THING', status: 'AGREED'}, {id: '2', name: 'THIS_THING', status: 'AGREED'}, {id: '3', name: 'OTHER_THING', status: 'AGREED'}, {id: '4', name: 'EVERY_THING', status: 'AGREED'}, ];

Mi lógica actual para deshabilitar/habilitar este botón se ve así:

 arr.filter((item) => item.indexOf('THING') > -1) .every((item) => item.status === 'AGREED')

Ahora mis requisitos han cambiado. Quiero habilitar/deshabilitar el botón de la misma manera, pero quiero EXCLUIR elementos específicos de esta matriz. Por ejemplo, quiero excluir estos dos elementos:

 {id: '2', name: 'THIS_THING', status: 'AGREED'}, {id: '3', name: 'OTHER_THING', status: 'AGREED'},

Usando mi lógica, ¿cómo filtro mi matriz mientras EXCLUYO estos dos?

Me doy cuenta de que puedo intentar eliminar estos elementos específicos, pero me preguntaba si había una forma potencialmente más limpia de hacerlo sin una eliminación explícita.

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Puede excluir una lista de elementos asumiendo siempre que el par clave/valor dado es verdadero, independientemente del valor.

 const exclusionList = ['THIS_THING', 'OTHER_THING']; arr.filter((item) => item.indexOf('THING') > -1) .every((item) => item.status === 'AGREED' || exclusionList.includes(item.name))
about 4 years ago · Juan Pablo Isaza Report

0

También agregue su nombre clave (nombre) donde usa indexOf

 let arr = [ {id: '1', name: 'SOME_THING', status: 'AGREED'}, {id: '2', name: 'THIS_THING', status: 'AGREED'}, {id: '3', name: 'OTHER_THING', status: 'AGREED'}, {id: '4', name: 'EVERY_THING', status: 'AGREED'}, ]; const list = ['THIS_THING', 'OTHER_THING']; console.log(arr.filter((item) => item.name.indexOf('THING') > -1).every((user) => user.status === 'AGREED' || list.some(user.name)))
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!