export function createLabel(name = 'meta', info = [], endSymbol = '>') { let label = '' if (info instanceof Array) { label += info.map(n => { if (n && Object.prototype.toString.call(n) === '[object Object]') { let item = '' for (let key in n) { item += ' ' + key + '="' + n[key] + '"' } return `<${name} ${item} ${endSymbol}` } else return '' }) } return label } export function entranceHtml(arg = {}) { let param = { lang: '', pageName: 'index', title: '页面', meta: [{ name: 'description', content: 'wpm页面' }], } if (!arg || Object.prototype.toString.call(arg) !== '[object Object]') { param = { ...param, ...arg } } return `<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> ${createMetaLabel('meta', param.meta)} ${createMetaLabel('link', param.link)} <title>${param.title || '页面'}</title> <link ref='stylesheet' href='../../asset/${param.pageName}/style.css'> </head> <body> <div id="app"></div> </body> <script src="main.js"></script> </html>` }
时间: 2024-01-27 08:05:33 浏览: 74
当您发布的代码段中,createLabel 函数的返回值是一个数组,而不是一个字符串,这是因为在函数中使用了 map 方法。如果您想让函数返回一个字符串,可以使用 join 方法将数组中的所有元素连接成一个字符串。
另外,entranceHtml 函数中调用了createMetaLabel 函数,但函数名称与实际定义的函数名称不同。建议修改为 createLabel。
下面是修改后的代码段:
```
export function createLabel(name = 'meta', info = [], endSymbol = '>') {
let label = ''
if (info instanceof Array) {
label += info.map(n => {
if (n && Object.prototype.toString.call(n) === '[object Object]') {
let item = ''
for (let key in n) {
item += ' ' + key + '="' + n[key] + '"'
}
return `<${name} ${item} ${endSymbol}`
} else return ''
}).join('') // 使用 join 方法将数组中的所有元素连接成一个字符串
}
return label
}
export function entranceHtml(arg = {}) {
const param = {
lang: '',
pageName: 'index',
title: '页面',
meta: [{ name: 'description', content: 'wpm页面' }],
link: '', // 添加 link 属性
}
if (arg && Object.prototype.toString.call(arg) === '[object Object]') { // 修改条件判断
Object.assign(param, arg) // 使用 Object.assign 方法合并参数
}
return `<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
${createLabel('meta', param.meta)}
${createLabel('link', param.link)} <!-- 调用 createLabel 函数 -->
<title>${param.title || '页面'}</title>
<link rel="stylesheet" href="../../asset/${param.pageName}/style.css"> <!-- 修改 rel 属性 -->
</head>
<body>
<div id="app"></div>
</body>
<script src="main.js"></script>
</html>`
}
```
优化后的代码具有更好的可读性和可维护性。
阅读全文