【问题标题】:How can I handle an array string through Iteration in Typescript如何通过 Typescript 中的迭代处理数组字符串
【发布时间】:2020-05-29 01:02:00
【问题描述】:

我有这个字符串数组:

color = ['red','blue','purple'];

我想打印一条消息:

颜色('红色','蓝色','紫色')

如果我这样写:

color.forEach((c) => {
      console.log(`color in ('${c}')`);
    });

我收到这条消息:

颜色为('red')颜色为('blue')颜色为('purple')

我怎样才能收到第一条消息?

【问题讨论】:

  • 不要使用forEach,只需使用console.log(`color in ('${color}'))`

标签: javascript arrays string typescript loops


【解决方案1】:

另一种选择可能是函数Array.from

你可以不带参数调用函数Array.prototype.join,逗号将用作分隔符。

Array.prototype.join()

参数separator 可选

指定一个字符串来分隔数组的每对相邻元素。如有必要,分隔符将转换为字符串。如果省略,则数组元素用逗号 (",") 分隔。如果separator 是一个空字符串,则所有元素都连接在一起,它们之间没有任何字符。

const colors = ['red','blue','purple'];
console.log(`color in (${ Array.from(colors, c => `'${c}'`).join() })`);

【讨论】:

    【解决方案2】:

    这样使用forEach循环

    var color = ['red','blue','purple'];
    var str='color in (';
    color.forEach(e=>str+="'"+e+"',")
    str=str.substring(0,str.length-1)+')';
    console.log(str)

    【讨论】:

      【解决方案3】:

      你可以试试这个

      color = ['red','blue','purple'];
      
      console.log(`color in (${color.map(item => "'" + item + "'").toString()})`); // color in ('red','blue','purple')

      【讨论】:

        【解决方案4】:

        您需要map 为每种颜色添加引号,然后join 将它们放在一起:

        const colors = ['red','blue','purple'];
        console.log(`color in (${ colors.map(c => `'${c}'`).join(',') })`);

        虽然我不确定你为什么要专门这样做。出于调试目的,只需console.log('color in', colors) 就可以了。对于用户可见的消息,您可能只使用colors.join(', '),和/或更精细的格式使用..., ... and ...

        【讨论】:

          猜你喜欢
          • 2016-05-24
          • 2012-12-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-06-20
          • 1970-01-01
          • 2021-10-02
          • 1970-01-01
          相关资源
          最近更新 更多