让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言题目描述 想要将如下代码进行一次渲染(上面有一层遍历了),有什么方法吗?
const data = [
{
id: 1,
tit: '重庆周边两日游',
day: '3-4天',
month: '3月-10月',
rate: '38%',
data1: [
'解放碑(2小时)',
'洪崖洞民俗风貌区(1.5小时)',
'千厮门大桥(30分钟)',
'八一路好吃街(1小时)'
]
},
]
行程概览
D{data[id].id}
解放碑(2小时)
→
洪崖洞民俗风貌区(1.5小时)
→
千厮门大桥(30分钟)
→
八一路好吃街(1小时)
D2
磁器口古镇(2.5小时)
→
重庆白公馆(0.5小时)
→
渣滓洞监狱旧址(0.5小时)
→
长江索道(15分钟)
→
南山一棵树景区(2小时)
D3周边游
回答 从代码中可以看出需要根据 data 渲染出多段行程概览,并在行程概览中根据 data1 的内容渲染出多个链接和箭头。可以利用 Array.prototype.map() 函数对 data 进行遍历,然后进行编排;在每组行程概览中,利用 Array.prototype.join() 和字符串模板将每一个 data1 的内容以及箭头连接在一起,并利用字符串模板拼接整个渲染结果。 代码实现如下:
const data = [
{
id: 1,
tit: "重庆周边两日游",
day: "3-4天",
month: "3月-10月",
rate: "38%",
data1: ["解放碑(2小时)", "洪崖洞民俗风貌区(1.5小时)", "千厮门大桥(30分钟)", "八一路好吃街(1小时)"]
}
];
const renderData = data.map(({ id, data1 }) => {
const content = data1.map((text, index) => {
return `
${text}${index === data1.length - 1 ? "" : "→"}
`;
}).join("");
return `
D${id}
${content}
`;
}).join("");
const renderResult = `
行程概览
${renderData}
D3周边游
`;
document.querySelector("#root").innerHTML = renderResult;