let mirror_arr=[ [1,2],[3,2],[1,4],[8,1],[5,4],[2,1],[3,5],[1,8],[3,2],[2,3] ] filtered_mirror=[ [1,2],[3,2],[1,4],[8,1],[5,4],[3,5] ]; Este algoritmo filtra todos los espejos. Por ejemplo, [1,2] es un espejo de [2,1] , por lo que se filtrará eliminando los espejos. ¿Hay algún método corto para hacer esto en Javascript? Gracias por leer :) Mi solución codepen está aquí y casi la resolví. Es solo que tengo que eliminar los duplicados.
Supuse que tampoco desea duplicados, ya que no tenía un segundo [3,2] en su salida esperada. Desde su codepen, parece que está familiarizado con Set y JSON.stringify.
let mirror_arr = [ [1,2],[3,2],[1,4],[8,1],[5,4],[2,1],[3,5],[1,8],[3,2],[2,3] ]; let filtered = []; let found_set = new Set(); for(let i = 0; i < mirror_arr.length; i++) { let item = mirror_arr[i]; let string_item = JSON.stringify(item); if(!found_set.has(string_item)) { filtered.push(item); found_set.add(string_item); found_set.add( JSON.stringify([...item].reverse()) ); } } console.log(JSON.stringify(filtered)); .as-console-wrapper { max-height: 100% !important; top: 0; }