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

166
Views
Comparar dos matrices y eliminar elementos en matriz1 donde el índice en matriz2 no está definido

Digamos que tengo estas dos matrices

 steps = [0, 2, 4, 6, 8, 10, 12, 15, 20, 25, 30, 35, 40, 45, 50] nums = [16.931728, 16.975609, 17.09624, undefined, undefined, undefined..., 5]

Se garantiza que ambas matrices siempre tendrán la misma longitud.

Quiero eliminar todos los valores indefinidos de mi matriz nums y luego eliminar elementos en el índice coincidente en mi matriz de pasos.

¿Hay una manera clara de hacer esto?

Puedo lograr esto haciendo nums.filter y luego realizar un seguimiento de los índices eliminados en una matriz.

y luego recorra la matriz de índices eliminados hacia atrás para eliminar los elementos en la matriz de pasos, pero esto se siente muy desordenado. ¿Hay una manera simple de abordar esto?

El resultado final debe ser

 steps = [0, 2, 4, 50] nums = [16.931728, 16.975609, 17.09624, 5]
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Podría usar Array.reduce() para crear la salida requerida.

Para cada elemento en la matriz de pasos, verificaremos si la matriz nums correspondiente no está undefined , si lo está, omitimos agregar a las matrices de salida.

 let steps = [0, 2, 4, 6, 8, 10, 12, 15, 20, 25, 30, 35, 40, 45, 50] let nums = [16.931728, 16.975609, 17.09624, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, 5] let result = steps.reduce((acc, val, i) => { if (nums[i] !== undefined) { acc.nums.push(nums[i]); acc.steps.push(val); } return acc; }, { steps: [], nums: [] }) console.log('steps:', result.steps); console.log('nums:', result.nums);
 .as-console-wrapper { max-height: 100% !important; top: 0; }

about 4 years ago · Juan Pablo Isaza Report

0

Puede tomar un solo bucle desde el final y eliminarlo si es necesario.

 const steps = [0, 2, 4, 6, 8], nums = [16.931728, 16.975609, undefined, undefined, 17.09624] let i = nums.length; while (i--) { if (nums[i] !== undefined) continue; steps.splice(i, 1); nums.splice(i, 1); } console.log(...steps); console.log(...nums);

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!