假设你的数据结构是这样的:
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"
]
}
}并且您有以下路由/[semester]/[subject],因此Next.js结构文件夹为:[semester]/[subject].js
我们将如何集成数据,以便在单个嵌套循环中获得getStaticPaths参数?
所需数据:
[
{ 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"}}
]发布于 2021-10-01 21:19:25
使用for...in遍历对象,然后使用forEach循环内部数组,将每个主题添加到一个数组中:
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);
发布于 2021-10-01 21:26:47
使用函数式方法,您可以遍历data.cse的entries,然后使用.flatMap进行链接
const result = Object.entries(data.cse).flatMap(([key, value]) => {
return value.map(i => {
return {
params: {
semester: key,
subject: i.toLowerCase().replaceAll(' ', '-')
}
}
})
})https://stackoverflow.com/questions/69411935
复制相似问题