Imagina que tu estructura de datos es como:
data = { "cse": { "first": [ "Computer Hardware Essentials", "Computer System Essentials", "Cultural Education" ], "second": [ "Discrete Mathematics", "Linear Algebra", "Engineering Physics - A", ], "third": [ "Numerical Methods", "Optimization Techniques", "Digital Electronics", ], "fourth": [ "Probability and Random Processes", "Data Structures and Algorithms", "Theory of Computation" ] } } Y tiene la siguiente ruta /[semester]/[subject] por lo que la carpeta de estructura Next.js es: [semester]/[subject].js
¿Cómo integraremos los datos para que podamos obtener los parámetros getStaticPaths en un solo ciclo anidado?
Datos requeridos:
[ { params: {semester: "first", subject: "computer-hardware-essentials"}}, { params: {semester: "first", subject: "computer-system-essentials"}}, { params: {semester: "first", subject: "cultutal-education"}}, { params: {semester: "second", subject: "discrete-mathemetics"}}, { params: {semester: "second", subject: "linear-algebra"}}, { params: {semester: "second", subject: "engineering-physics-a"}}, { params: {semester: "third", subject: "numerical-methods"}}, { params: {semester: "third", subject: "optimization-techniques"}}, { params: {semester: "third", subject: "digital-electronics"}}, { params: {semester: "fourth", subject: "probability-and-random-process"}}, { params: {semester: "fourth", subject: "data-structure-and-algorithms"}}, { params: {semester: "fourth", subject: "theory-of-computation"}} ]Recorra el objeto usando for...in y luego recorra la matriz interna usando forEach para agregar cada sujeto a una matriz:
const results = []; for (const x in data.cse) { data.cse[x].forEach((s) => { results.push({ params: { semester: x, subject: s } }); }); } const data = { "cse": { "first": [ "Computer Hardware Essentials", "Computer System Essentials", "Cultural Education" ], "second": [ "Discrete Mathematics", "Linear Algebra", "Engineering Physics - A", ], "third": [ "Numerical Methods", "Optimization Techniques", "Digital Electronics", ], "fourth": [ "Probability and Random Processes", "Data Structures and Algorithms", "Theory of Computation" ] } } const results = []; for (const x in data.cse) { data.cse[x].forEach((s) => { results.push({ params: { semester: x, subject: s } }); }); } console.info(results);Usando métodos funcionales, puede recorrer las entries de data.cse y luego encadenar con .flatMap
const result = Object.entries(data.cse).flatMap(([key, value]) => { return value.map(i => { return { params: { semester: key, subject: i.toLowerCase().replaceAll(' ', '-') } } }) })