Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

240
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda