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

229
Views
Estoy tratando de excluir elementos de una matriz, pero estoy haciendo algo mal

Estoy tratando de crear este script: https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/seek-and-destroy

Después del comentario "Verificar y eliminar" es donde tengo el problema. Intento verificar todos los elementos de la matriz 'theCheck' con los elementos de 'destructores' y, si los elementos no coinciden, el script enviará ese valor a la matriz de salida.

Pero empuja cada elemento independientemente.

Valor de salida esperado: [1,1]

Valor del valor de salida actual: [1,2,3,1,2,3]

 function destroyer(arr) { let theCheck = []; let destroyers = []; let output = []; for (let i = 1; i < arguments.length; i++) { destroyers.push(arguments[i]); } for (let i = 0; i < arguments[0].length; i++) { theCheck.push(arguments[0][i]) } //Verify and delete var j = 0 for (let i = 0; i < theCheck.length; i++) { for (j = 0; j < destroyers.length; j++) { if (theCheck[i] !== destroyers[j]) { output.push(theCheck[i]) break; } } } console.log(theCheck) console.log(destroyers) console.log(output) return arr; } destroyer([1, 2, 3, 1, 2, 3], 2, 3);

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

0

Con el código actual, está recorriendo los destructores y cada vez que encuentra un destructor que no coincide con el elemento que está comprobando, lo está agregando a la salida. Pero debido a que tiene dos elementos en la matriz de destructores, está garantizado que uno de los dos no coincidirá con el elemento en particular que está verificando.

A continuación, se muestra una versión en la que determinamos si alguno de los destructores coincide con el elemento que estamos comprobando y, solo si no es así, lo agregamos a la salida:

 function destroyer(arr) { let theCheck = []; let destroyers = []; let output = []; for (let i = 1; i < arguments.length; i++) { destroyers.push(arguments[i]); } for (let i = 0; i < arguments[0].length; i++) { theCheck.push(arguments[0][i]) } //Verify and delete var j = 0 for (let i = 0; i < theCheck.length; i++) { let found = false; for (j = 0; j < destroyers.length; j++) { if (theCheck[i] === destroyers[j]) { found = true; } } if(!found) output.push(theCheck[i]); } console.log(theCheck) console.log(destroyers) console.log(output) return arr; } destroyer([1, 2, 3, 1, 2, 3], 2, 3);

Podría usar la función include para arreglar esto un poco:

 function destroyer(arr) { let theCheck = []; let destroyers = []; let output = []; for (let i = 1; i < arguments.length; i++) { destroyers.push(arguments[i]); } for (let i = 0; i < arguments[0].length; i++) { theCheck.push(arguments[0][i]) } //Verify and delete var j = 0 for (let i = 0; i < theCheck.length; i++) { if(!destroyers.includes(theCheck[i])) output.push(theCheck[i]); } console.log(theCheck) console.log(destroyers) console.log(output) return arr; } destroyer([1, 2, 3, 1, 2, 3], 2, 3);

about 4 years ago · Juan Pablo Isaza Report

0

 function destroyer(input, ...arr) { return input.filter(element => !arr.includes(element)); } console.log(destroyer([1, 2, 3, 1, 2, 3], 2, 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!