Me gustaría reagrupar dinámicamente cada elemento con el mismo índice de matrices múltiples (sin un número preciso) con la misma longitud en una matriz.
Ejemplo :
var arrayOfarray =[ ['a','b','c','d','e','f'], ['h','i','j','k','l','m'], ] /* expectedResult = [['a','h'],['b','i'],['c','j'],['d','k'],['e','l'],['f','m']] */Gracias
var a = [1, 2, 3] var b = ['a', 'b', 'c'] var c = a.map(function(e, i) { return [e, b[i]]; }); console.log(c)var result = []; for(var i = 0; i < arrayOfarray.length; i++){ for(var j = 0; j < arrayOfarray[i].length; j++){ result.push([arrayOfarray[i][j], arrayOfarray[(i+1)%2][j]]); } }son solo 2 anidados para bucles ... nada especial
lo que tenemos que darnos cuenta es que la longitud de la matriz que queremos devolver es la misma que la longitud de las matrices anidadas de la matriz que pasamos a la función.
y cada matriz anidada en la matriz que queremos devolver tiene la misma longitud que la matriz principal que pasamos a la función.
así que es básicamente como
passedArray.length === returnedArray[i].length //true passedArray[i].length === returnedArray.length //true function x(arr) { const retVal = []; for (let i = 0, subArr; i < arr[0].length; i++) { subArr = [] for (let j = 0; j < arr.length; j++) { subArr.push(arr[j][i]) } retVal.push(subArr) } return retVal } const arrayOfarray = [['a', 'b', 'c', 'd', 'e', 'f'], ['h', 'i', 'j', 'k', 'l', 'm']]; console.log(x(arrayOfarray));