我正在尝试在代码中使用模板文字,但它不起作用。let myData =
(myNewData[0].checked ? Enum.ONE.concat(',') : '') +
(myNewData[1].checked ? Enum.TWO.concat(',') : '') +
(myNewData[2].checked ? Enum.THREE : '');
myData = myData.replace(/,\s*$/, '');我想检查是否检查了 first 或 second 或 third 然后我应该得到用逗号分隔的结果 - One,Two,Three。一切正常。但是我正在优化代码并想用模板文字删除 concat,我该怎么做?我也试过这个 -let myData = (myNewData[0].checked ? `$(Enum.ONE) , $(myNewData[1].checked) ? `Enum.TWO , `(myNewData[2].checked ? Enum.THREE)
myData = myData.replace(/,\s*$/, "");我如何优化此代码,因为我在使用模板文字(反勾)时遇到错误。我是使用模板文字的新手,有人可以帮我吗?
3 回答
GCT1015
TA贡献1827条经验 获得超4个赞
由于 中的每个项目都Enum
与数组中的一个元素相关联myNewData
,请考虑将其更改为字符串数组而不是字符串对象。myNewData
然后你可以通过是否检查相同索引来过滤数组,然后用逗号连接:
const TEXTS = ['One', 'Two', 'Three']; const output = TEXTS .filter((_, i) => myNewData[i].checked) .join(',');
ITMISS
TA贡献1871条经验 获得超8个赞
我认为这是在 Javascript 中使用模板文字进行连接的方法。
const a = `${myNewData[0].checked ? Enum.ONE: ''}${myNewData[1].checked ? `, ${Enum.TWO}`: ''}${myNewData[2].checked ? `, ${Enum.THREE}`: ''}`
另一方面,有更多“干净”的方法可以做到这一点......
添加回答
举报
0/150
提交
取消