En primer lugar, no estoy completamente seguro de si este es el enfoque correcto para el problema que tengo, pero aquí va.
tengo dos matrices
const projects = ["PP", "JJ"] const issues = ["10000", "10002", "100003"]Para cada problema, quiero crear un objeto así:
{ "issueTypeId": "10002", "projectId": "PP", "viewType": "GIC" }Y al final termina con una serie de objetos, algo así como:
[{ "issueTypeId": "10002", "projectId": "PP", "viewType": "GIC" }, { "issueTypeId": "10000", "projectId": "PP", "viewType": "GIC" }]Hasta ahora esta es mi lógica.
const projects = ["PP", "JJ"] const issues = ["10000", "10002", "100003"] const p = issues.map(issue => { return projects.map(project => { return {issueTypeId: issue, projectId: project, viewType: "GIC"} }) }) console.log(p)Pero como puede ver, obtengo una matriz de matrices al final que estoy bastante seguro de que se debe a la lógica de doble mapa.
1º - ¿Existe una mejor manera de lograr mi objetivo?
2do - Si no, cómo quitar la matriz interna y obtener una sola
Gracias
Usa flatMap en lugar de map . Además, al elegir sabiamente sus variables y usar la forma abreviada de funciones de flecha, podría usar lo siguiente:
const projects = ["PP", "JJ"], issues = ["10000", "10002", "100003"], viewType = "GIC", p = issues.flatMap(issueTypeId => projects.map(projectId => ({issueTypeId, projectId, viewType})) ); console.log(p)Puedes probar esto
const projects = ['PP', 'JJ']; const issues = ['10000', '10002', '100003']; let outArray = []; issues.forEach((i) => { projects.forEach((p) => { outArray.push({ issueTypeId: i, projectId: p, viewType: 'GIC', }); }); }); console.log(outArray);