垃圾循环为什么输出多余的逗号?

时间:2019-02-26 12:11:32

标签: javascript ecmascript-6

我正在尝试找出js中的模板拼写,但实际上并没有获得语法。此循环在每次发出信号时都会输出多余的逗号:

character = () => {
    const traits = ["Kunskap", "Rörlighet","Styrka", "Utstrålning", "Uppfattningsförmåga", "Magisk kraft"];
    return `${traits.map(() => '')}`
};

完整代码:

            character = () => {
                const dice = rndAssign(6, 16),
                traits = ["Kunskap", "Rörlighet","Styrka", "Utstrålning", "Uppfattningsförmåga", "Magisk kraft"];
            return `<table>
                    <thead>
                        <tr>
                            <td>&nbsp;</td><td>D6</td><td>Mod</td>
                        </tr>
                    </thead>
                    <tbody>
                        ${traits.map(elm => trait(elm))}
                    </tbody>
                </table>`
            };

3 个答案:

答案 0 :(得分:1)

因为这是数组上的默认toString行为。您可以在数组上使用join创建不带逗号的字符串。

const table = () => {
  const traits = ["Kunskap", "Rörlighet", "Styrka", "Utstrålning", "Uppfattningsförmåga", "Magisk kraft"];
  return `
    <table>
      <thead><tr><th>Foo</th></tr></thead>
      <tbody>${traits.map((e) => `<tr><td>${e}</td></tr>`).join(' ')}</tbody>
    </table>
    `
};

document.body.innerHTML = table()
table,
th,
td {
  padding: 5px;
  border: 1px solid black;
}

答案 1 :(得分:1)

我真的不知道您到底想做什么。如果可以使用join对数组进行字符串化处理并获得一个字符串,为什么要循环以及为什么要使用文字。

character = () => {
    const traits = ["Kunskap", "Rörlighet","Styrka", "Utstrålning", "Uppfattningsförmåga", "Magisk kraft"];
    console.log(traits.join(' '))
};

character();

答案 2 :(得分:1)

在map函数中只返回空字符串,使空数组打印逗号。如果您返回值,那么它将打印值。

字符=()=> {         const traits = [“” Kunskap“,”Rörlighet“,” Styrka“,”Utstrålning“,”Uppfattningsförmåga“,” Magisk kraft“];         返回${traits.map(() => '')}     };

() => {
    const traits = ["Kunskap", "Rörlighet","Styrka", "Utstrålning", "Uppfattningsförmåga", "Magisk kraft"];
    return `${traits.map(() => '')}`
}


character()
",,,,,"


character = () => {
    const traits = ["Kunskap", "Rörlighet","Styrka", "Utstrålning", "Uppfattningsförmåga", "Magisk kraft"];
    return `${traits.map((v) => v)}`
};


() => {
    const traits = ["Kunskap", "Rörlighet","Styrka", "Utstrålning", "Uppfattningsförmåga", "Magisk kraft"];
    return `${traits.map((v) => v)}`
}


character()


"Kunskap,Rörlighet,Styrka,Utstrålning,Uppfattningsförmåga,Magisk kraft"