我正在尝试将错误列表映射到我将在工具提示中显示的列表中。添加了列表,但每个li元素之间都添加了,
。
我想这是因为这最终基本上会errors.map(error => ...).toString()
。任何想法如何在errors
数组中映射字符串而不添加此逗号?
data-tip = {`
Precisa de corrigir os seguintes problemas antes de publicar o anúncio:</br>
<ul>
${errors.map(error => `<li>${error}</li>`)}
</ul>
`}
答案 0 :(得分:18)
.toString()
使用Array.prototype.join
方法将数组转换为字符串。默认情况下,.join
方法使用,
来加入元素。您可以将.toString()
替换为.join('')
。
答案 1 :(得分:11)
在您的代码中,您使用的是模板文字,它返回一个字符串,因此返回代码
${errors.map(error => `<li>${error}</li>`)}
使用toString()
函数将转换为字符串,该函数默认将返回的数组与,
连接。
您可以使用与其他分隔符(例如
)的联接{`
Precisa de corrigir os seguintes problemas antes de publicar o anúncio:</br>
<ul>
${errors.map(error => `<li>${error}</li>`).join(' ')}
</ul>
`}
答案 2 :(得分:0)
您可以尝试这种方式::
let arrayOfStr = [10, 20, 45, 12, 65 ];
let myNumberOfStr = arrayOfStr.map( number => `myNumber_${number}` ).join(' ');
console.log(myNumberOfStr);
// "myNumber_10 myNumber_20 myNumber_45 myNumber_12 myNumber_65"
答案 3 :(得分:0)
只需使用reduce
。像这样:
data-tip = {`
Precisa de corrigir os seguintes problemas antes de publicar o anúncio:</br>
<ul>
${errors.reduce(
(prevError, currentError) => `${prevError}<li>${currentError}</li>`, '',
)}
</ul>
`}