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
Hallar la diferencia simétrica en un bucle

Necesito escribir una función que pueda tomar una cantidad indefinida de matrices que contengan números enteros y que devuelva 1 matriz, que es la diferencia simétrica acumulativa entre esas matrices. Solo se comparan dos matrices a la vez. Entonces [1, 2, 3], [3, 4, 2], [1, 5, 3] primero daría como resultado [1, 4] , (comparando las dos primeras matrices), que luego se compara con la tercera y el resultado final es [4, 5, 3] . Creé un ciclo que hace eso para las dos primeras matrices, pero no sé cómo convertirlo en un ciclo real que realice la misma operación en cada paso. Por alguna razón, usar arr[i] y arr[i + 1] genera un error. Aquí está mi código hasta ahora.

 function test(...arr) { let accumulator; for (let i = 0; i < arr.length; i++) { let common = arr[0].filter(a => arr[1].includes(a)) let arr0 = arr[0].filter(a => !common.includes(a)) let arr1 = arr[1].filter(a => !common.includes(a)) let merged = [...arr0, ...arr1] accumulator = merged } return accumulator } console.log(test([1, 2, 3], [3, 4, 2], [1, 5, 3]))

Aquí el accumulator es [1, 4] , por lo que en este punto, toda la operación debe realizarse con la siguiente matriz y el acumulador, que es donde estoy atascado.

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

0

Estás iterando con i desde 0 hasta arr.length - 1 . arr[i + 1] es arr[arr.length] en la última iteración. Está fuera de los límites. Puede cambiar la condición del ciclo a i < arr.length - 1 .

Ejemplo:

 function test(...arr) { let accumulator; for (let i = 0; i < arr.length - 1; i++) { let common = arr[i].filter(a => arr[i + 1].includes(a)) let arr0 = arr[i].filter(a => !common.includes(a)) let arr1 = arr[i + 1].filter(a => !common.includes(a)) let merged = [...arr0, ...arr1] accumulator = merged } return accumulator } console.log(test([1, 2, 3], [3, 4, 2], [1, 5, 3]))

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!