Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

170
Vistas
Quiero eliminar la misma parte de la matriz bidimensional

Me gustaría comparar los dos arreglos del siguiente script para eliminar el arreglo duplicado.
Utilicé la función Filtro e incluye o declaración for pero fallé.
¿Qué tengo que hacer?

 let ground = [ [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1], [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1], [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1], [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1], [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1], [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1], [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1], [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1], [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1], [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1], [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1], [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1], [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1], [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1], [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1], [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1], [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1], [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1], [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1], [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1], [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1], [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1], [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1], [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1], [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1], [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1], [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1], [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1], [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1], [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1], [1,3,3,7,7,7,7,8,8,4,4,4,2,2,3,7,1], [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1], ] let deleteBlock = [[1,3,3,7,7,7,7,8,8,4,4,4,2,2,3,7,1]]

lo intenté de esta manera

 let ans = ground.filter((r,idx) => { for(let i =0; i < deleteBlock.length;i++) { if(r === deleteBlock[i]) { ground.splice(idx, 1) } } })
 ground.filter((r) => deleteBlock.forEach(ele=> r.includes(ele)))
about 4 years ago · Santiago Gelvez
2 Respuestas
Responde la pregunta

0

Si compara dos matrices con las mismas propiedades, siempre obtendrá falso. Por ejemplo, [1] === [1] siempre devuelve falso, ya que cada uno de ellos es un objeto de matriz completamente nuevo con contenidos idénticos.

Por lo tanto, debe recorrer ambas matrices y comparar cada una de sus propiedades una por una o, en su caso, dado que asumo que el tipo no es esencial, podría deconstruirlas y luego comparar las cadenas de esta manera:

 const filtered = ground.filter((row) => { return row.join() !== deleteBlock.join(); });
about 4 years ago · Santiago Gelvez Denunciar

0

Podría crear una función arrayEqual que compare dos matrices

 function arrayEqual(arr1, arr2) { if (arr1.length !== arr2.length) return false; for (let i = 0; i < arr1.length; i++) if (arr1[i] !== arr2[i]) return false; //adapt equality test if you have complex objects return true; }

y luego utilícelo de la siguiente manera

 let ground = [...]; let filtered = ground.filter(x => deleteBlock.every(y => !arrayEqual(x,y)));
about 4 years ago · Santiago Gelvez Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda