No es una pregunta, solo pongo esto por si alguien lo necesita. (me causó mucho dolor de cabeza)
La siguiente secuencia de comandos puede tomar una matriz 2d de cualquier cantidad de matrices de segunda capa como 'myArray' y crear una matriz única del elemento más frecuente (independientemente del tipo) en cada columna de la matriz 2d original.
myArray = myArray[0] .map((_, col) => myArray.map((row) => row[col])) .map((array) => array.reduce( (a, b, i, arr) => arr.filter((v) => v === a).length >= arr.filter((v) => v === b).length ? a : b, null ) );Qué hace: el siguiente código tomará cualquier matriz bidimensional "myArray" y devolverá una matriz unidimensional con el modo de cada columna de la matriz bidimensional original.
Cómo funciona: la entrada (matriz bidimensional) se transpone y se busca en la matriz resultante el elemento más común en cada fila. Luego se reduce para aplanarlo (reducirlo) y volver a transponerlo a una matriz 1d que contiene los elementos más comunes de cada columna de la matriz original.
myArray = [ [1, 2, 3, 4, 5], [1, 2, 3, 4, 7], [1, 3, 3, 6, 7], [1, 5, 3, 4, 7], [1, 6, 3, 4, 7], [1, 7, 3, 8, 5], ]; myArray = myArray[0] .map((_, col) => myArray.map((row) => row[col])) .map((array) => array.reduce( (a, b, i, arr) => arr.filter((v) => v === a).length >= arr.filter((v) => v === b).length ? a : b, null ) ); console.log(myArray);