如何在 Javascript 中使用模板文字进行连接?

我正在尝试在代码中使用模板文字,但它不起作用。

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*$/, "");

我如何优化此代码,因为我在使用模板文字(反勾)时遇到错误。我是使用模板文字的新手,有人可以帮我吗?


尚方宝剑之说
浏览 115回答 3
3回答

GCT1015

由于 中的每个项目都Enum与数组中的一个元素相关联myNewData,请考虑将其更改为字符串数组而不是字符串对象。myNewData然后你可以通过是否检查相同索引来过滤数组,然后用逗号连接:const TEXTS = ['One', 'Two', 'Three']; const output = TEXTS   .filter((_, i) => myNewData[i].checked)   .join(',');

ITMISS

我认为这是在 Javascript 中使用模板文字进行连接的方法。const a = `${myNewData[0].checked ? Enum.ONE: ''}${myNewData[1].checked ? `, ${Enum.TWO}`: ''}${myNewData[2].checked ? `, ${Enum.THREE}`: ''}`另一方面,有更多“干净”的方法可以做到这一点......

Qyouu

您应该在模板文字中使用大括号 ${ } 而不是圆括号 $( )
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript