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

193
Visualizações
cómo eliminar los siguientes argumentos después de la matriz

La función destroyer (matriz1, algunos argumentos) debe devolver la matriz1 excluyendo los argumentos. Encontré algunas formas de trabajo como return arr = arr.filter(val => !rem.includes(val)); pero necesito arreglar este código y averiguar por qué este código da un resultado incorrecto. Se suponía que era [1]

 function destroyer(arr, ...rem) { for(let i = 0; i < arr.length; i++) { if (rem.includes(arr[i])) { arr.splice(i, 1); }; }; return arr; } console.log(destroyer([3, 5, 1, 2, 2], 2, 3, 5));

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

 function destroyer(arr, ...rem) { const itemsToRemove = new Set(rem); return arr.reduce((acc, curr) => itemsToRemove.has(curr) ? acc : [...acc, curr] ,[]) } console.log(destroyer([3, 5, 1, 2, 2], 2, 3, 5));

about 4 years ago · Juan Pablo Isaza Relatório

0

O puedes hacerlo así:

 const destroyer=(arr, ...rem)=>arr.filter(v=>!rem.includes(v)); console.log(destroyer([3, 5, 1, 2, 2], 2, 3, 5));

about 4 years ago · Juan Pablo Isaza Relatório

0

El problema es la llamada de la función Array.prototype.splice dentro del bucle for, esta función está mutando el arreglo y básicamente afecta los índices del arreglo, por lo tanto el índice actual i ya no es válido.

Para evitar esto, puede realizar un bucle hacia atrás, de esta manera podemos mutar la matriz y el índice actual no se ve afectado.

Una cosa más, su enfoque es mutar la matriz, un mejor enfoque sería usar la función Array.prototype.filter junto con la función Array.prototype.includes , vea otras respuestas.

 function destroyer(arr, ...rem) { for(let i = arr.length; i >= 0; i--) { if (rem.includes(arr[i])) { arr.splice(i, 1); }; }; return arr; } console.log(destroyer([3, 5, 1, 2, 2], 2, 3, 5));

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