Soy bastante nuevo para reaccionar. Actualmente estoy tratando de combinar 2 elementos de matrices en uno, pero me gustaría iterar sobre cada elemento. ¿Cómo puedo hacer eso?
const arr1 = [ { value: "red", label: "Red" },{ value: "yellow", label: "Yellow" },{value: "Blue", label: "Blue" },] const arr2 =[ { value: "s", label: "S" },{ value: "m", label: "M" },{ value: "l", label: "L" },]
Resultado esperado: ["rojo,s","rojo,m","rojo,l"],["amarillo,s","amarillo,m","amarillo,l"]...
He intentado concat() & reduce, pero el resultado que obtengo es que dos matrices se fusionan en lugar de que los elementos se fusionen por separado. ¿Puede alguien ayudar, por favor?
Puede usar el mapa para manipular con datos.
const arr1 = [ { value: "red", label: "Red" },{ value: "yellow", label: "Yellow" },{value: "Blue", label: "Blue" },] const arr2 =[ { value: "s", label: "S" },{ value: "m", label: "M" },{ value: "l", label: "L" },] console.log(...arr1.map(data => { return arr2.map(data2 => data.value + "," + data2.value) }))
Esto funcionó para mí, usando bucles anidados:
const arr1 = [ { value: "red", label: "Red" },{ value: "yellow", label: "Yellow" },{value: "Blue", label: "Blue" },] const arr2 =[ { value: "s", label: "S" },{ value: "m", label: "M" },{ value: "l", label: "L" },] const newarr = [] for (i=0; i<arr1.length; i++) { tmp = [] for (j=0; j<arr2.length; j++) { tmp.push([arr1[i].value, arr2[j].value]) } newarr.push(tmp) } console.log(newarr) // [ // [ [ 'red', 's' ], [ 'red', 'm' ], [ 'red', 'l' ] ], // [ [ 'yellow', 's' ], [ 'yellow', 'm' ], [ 'yellow', 'l' ] ], // [ [ 'Blue', 's' ], [ 'Blue', 'm' ], [ 'Blue', 'l' ] ] // ]
Pruébelo (siéntase libre de cambiar las claves a .value o .label)
function mergeArrays(arr1, arr2) { let result = []; for (let i = 0; i < arr1.length; i++) { result.push([]); for (let j = 0; j < arr2.length; j++) { result[i] = [ ...result[i], arr1[i].value + arr2[j].value ] } } }