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

150
Visualizações
¿Cómo elimino varios elementos de una matriz?

Quiero escribir una función que pase una matriz y un número opcional de valores para eliminarlos de la matriz como parámetros. Mi función funciona cuando solo hay 1 valor, pero falla cuando hay varios valores.

 const removeFromArray = function (arr, ...theArgs) { for (let i = 0; i < arr.length; i++) { if (theArgs.includes(arr[i])) { arr.splice(i, 1); } } return arr; };
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Puedes usar el método de filter para eso:

 const removeFromArray = function (arr, ...theArgs) { return arr.filter( val => !theArgs.includes(val) ) }; const list = [1,2,3]; const newList = removeFromArray(list, 2,3); console.log(newList);

Y una versión más concisa:

 const removeFromArray = (arr, ...args)=> arr.filter( val => !args.includes(val) )

Sugerencia: intente evitar la mutación de la matriz original y trabaje o devuelva una copia durante estas operaciones.

about 4 years ago · Juan Pablo Isaza Relatório

0

El problema es con su indexación, está encontrando el elemento usando el índice de arr y eliminándolo en la matriz, lo que probablemente esté causando problemas con la indexación en bucle. Modifica tu código de la siguiente manera

 const removeFromArray = function (arr, ...theArgs) { for (let i = 0; i < theArgs.length; i++) { if (arr.includes(theArgs[i])) { arr.splice(arr.indexOf(theArgs[i]), 1); } } return arr; };

Lo anterior corrige el código a tu manera, pero una mejor manera de hacerlo sería usando el filtro.

 const removeFromArray = function (arr, ...theArgs) { return arr.filter(ele => !theArgs.includes(ele)) }

Lo escribo de esta manera para mantener puramente su función.

about 4 years ago · Juan Pablo Isaza Relatório

0

El problema se debe a que elimina el elemento de la matriz mientras realiza un bucle desde esa matriz.

Cada vez que su bucle for itere la matriz, obtendrá una nueva matriz

por ejemplo (1,2,3,4,5 => 2,3,4,5), pero el valor i sigue aumentando en 1.

 const removeFromArray = function (arr, ...theArgs) { for (let i = 0; i < arr.length; i++) { console.log(`arr:${arr}`,`item${arr[i]}`,`num${i}`) console.log(arr[i]) if (theArgs.includes(arr[i])) { arr.splice(i, 1); } } return arr; }; const testarray = [1,2,3,4,5] console.log(removeFromArray(testarray,1,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