2 回答
TA贡献1842条经验 获得超21个赞
因为Array.prototype.map
函数返回一个新数组。当您将数组连接到字符串时,数组也会转换为字符串。并且当数组转换为字符串时,它用逗号分隔。
const arr = ['<a>', '<b>']; console.log(arr.toString()); // <a>,<b>
我会使用该Array.prototype.reduce
函数将数组减少为单个字符串。
masktypes.reduce((acc, masktype, i) => acc + `<option value="${masktype}" ${(i === 0) ? 'selected' : ''}>${masktype}</option>`, '')
所以完整的代码会变成:
const masktypes = ["1", "2"];
var htmlmask = `
<table>
<tr>
<td>種類</td>
<td>
<div class="form-element maskselectop">
<select class="form-element">
${masktypes.reduce((acc, masktype, i) =>
acc + `<option value="${masktype}" ${(i === 0) ? 'selected' : ''}>${masktype}</option>`, '')}
</select>
</div>
</td>
</tr>
</table>`;
$('body').html(htmlmask);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
TA贡献1895条经验 获得超3个赞
它使您的元素数组成为字符串。利用
<select class="form-element">
${masktypes.map((masktype, i)=>{
let option = '';
return option = `<option value="${masktype}" ${(i === 0) ? 'selected' : ''}>${masktype}</option>`;
}).join("")}
</select>
只需添加.join(""),它就会加入没有逗号。
添加回答
举报