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

287
Views
Eliminar matrices de una matriz si existen ciertos valores dentro de una lista

Bastante nuevo en JavaScript, solo intento eliminar una matriz completa dentro de mis datos si ciertos valores se enumeran en la matriz del_values .

¿Cuál sería el mejor enfoque para este problema?

 data = [['true', 'visiting-today', 'DVM-Wiessman','J-001'], ['false', 'visiting-tommorrow', 'DVM-Stevens','K-001'], ['true', 'visiting-tommorrow', 'DVM-Stevens','Z-001'], ['false', 'visiting-tommorrow', 'DVM-Kon','J-001']] var del_values = ['J-001','K-001']; function remove_from_list(list,deleted_values) { for( var i = 0; i < deleted_values.length; i++) { result = list.filter(dat => !dat.includes(deleted_values[i])); } return result; }

Resultado actual

 data = [ [ 'true', 'visiting-today', 'DVM-Wiessman', 'J-001' ], [ 'true', 'visiting-tommorrow', 'DVM-Stevens', 'Z-001' ], [ 'false', 'visiting-tommorrow', 'DVM-Kon', 'J-001' ] ]

Resultado deseado: para eliminar una matriz completa dentro de los datos si contiene alguno de los valores enumerados en del_values

 data = [[ 'true', 'visiting-tommorrow', 'DVM-Stevens', 'Z-001' ] ]
over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Puede usar Array.prototype.every dentro de la devolución de llamada del filtro:

 const data = [ ['true', 'visiting-today', 'DVM-Wiessman', 'J-001'], ['false', 'visiting-tommorrow', 'DVM-Stevens', 'K-001'], ['true', 'visiting-tommorrow', 'DVM-Stevens', 'Z-001'], ['false', 'visiting-tommorrow', 'DVM-Kon', 'J-001'] ] const del_values = ['J-001', 'K-001']; function remove_from_list(list, deleted_values) { return list.filter(arr => arr.every(el => !deleted_values.includes(el))) } console.log(remove_from_list(data, del_values))


 function remove_from_list(list,deleted_values) { for( var i = 0; i < deleted_values.length; i++) { result = list.filter(dat => !dat.includes(deleted_value[i])); } return result; }

El problema principal en su código es que cada list de iteraciones se filtra, por lo que la matriz previamente filtrada se reasigna.

over 4 years ago · Santiago Trujillo Report

0

Usando Array.some() y Array.filter()

 var data = [['true', 'visiting-today', 'DVM-Wiessman','J-001'], ['false', 'visiting-tommorrow', 'DVM-Stevens','K-001'], ['true', 'visiting-tommorrow', 'DVM-Stevens','Z-001'], ['false', 'visiting-tommorrow', 'DVM-Kon','J-001']] var del_values = ['J-001','K-001']; var result = data.filter(function(arr){ return !arr.some(function(e){return del_values.includes(e)}); }) console.log(result)

over 4 years ago · Santiago Trujillo Report

0

Está ejecutando su filtro a través de la list en lugar del result cada vez.

Creo que tenía la intención de continuar trabajando en la lista filtrada en lugar del argumento nuevamente con cada iteración:

 data = [['true', 'visiting-today', 'DVM-Wiessman','J-001'], ['false', 'visiting-tommorrow', 'DVM-Stevens','K-001'], ['true', 'visiting-tommorrow', 'DVM-Stevens','Z-001'], ['false', 'visiting-tommorrow', 'DVM-Kon','J-001']] var del_values = ['J-001','K-001']; function remove_from_list(list,deleted_values) { for( var i = 0; i < deleted_values.length; i++) { list = list.filter(dat => !dat.includes(deleted_values[i])); } return list; } let e = remove_from_list(data,del_values); console.log(e);

over 4 years ago · Santiago Trujillo 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!