【问题标题】:How can I remove the last comma in my for loop?如何删除 for 循环中的最后一个逗号?
【发布时间】:2019-09-02 15:41:12
【问题描述】:
function currentLine(katzDeliLine) {
    if (katzDeliLine.length > 0) {
        var textToPrint = "The line is currently: "

        for (var crrLine = 0; crrLine < katzDeliLine.length; crrLine++) {

            textToPrint = textToPrint + (crrLine + 1) + ". " + katzDeliLine[crrLine] + ","

        }


        return textToPrint;
    } else {
        return "The line is empty"
    }
}

var lineofpeople = ["katrina", "kevin", "vincent"]

输出是: The line is currently: 1. katrina, 2. kevin, 3. vincent,

我正在尝试去掉 'vincent' 之后的最后一个逗号

我尝试了 if 语句,也尝试了 .join() 方法。我不知道如何在代码中实现它们。

【问题讨论】:

标签: javascript arrays for-loop


【解决方案1】:

您可以将前导数字与值映射并用逗号连接数组。

function currentLine(array) {
    return array.length
        ? `The line is currently: ${array.map((v, i) => `${i + 1}. ${v}`).join(', ')}.`
        : "The line is empty.";
}

var lineofpeople = ["katrina", "kevin", "vincent"];

console.log(currentLine(lineofpeople));
console.log(currentLine([]));

【讨论】:

    【解决方案2】:

    一个简单的解决方案是使用 template literalsjoin()

    这里你应该注意它不是单引号,而是一个反引号

    var lineofpeople = ["katrina", "kevin", "vincent"]
    const emptyLine = []
    
    // Using arrow function; the code is short
    const currentLine = (line) => {
      return !line.length ? 'The line is empty' : `The line is currently: ${line.map((e, i) => `${i + 1}. ${e}`).join(', ')}`
    }
    
    console.log(currentLine(lineofpeople)) // expected: The line is currently: 1. katrina, 2. kevin, 3. vincent
    
    console.log(currentLine(emptyLine)) // expected: "The line is empty"

    【讨论】:

      【解决方案3】:

      使用textToPrint.slice(0,-1)删除返回字符串的最后一部分

      function currentLine(katzDeliLine) {
         if (katzDeliLine.length > 0) {
         var textToPrint = "The line is currently: "  
      
         for (var crrLine = 0;  crrLine < katzDeliLine.length; crrLine++) {
           textToPrint = textToPrint + (crrLine + 1)+". " +katzDeliLine[crrLine]+","
         }
      
         return textToPrint.slice(0,-1);
         } 
         else {
            return "The line is empty"
         }
      }
      
       var lineofpeople = ["katrina", "kevin", "vincent"]
       console.log(currentLine(lineofpeople));
      

      【讨论】:

        【解决方案4】:
        function currentLine(katzDeliLine) {
            if (katzDeliLine.length > 0) {
                var textToPrint = "The line is currently: "  
        
                for (var crrLine = 0;  crrLine < katzDeliLine.length; crrLine++) {
        
                textToPrint = textToPrint + (crrLine + 1)+". " 
                +katzDeliLine[crrLine]+","
        
        }
        
        
        return textToPrint.replace(/,\s*$/, "");
        } else {
        return "The line is empty"
        }
        }
        
        var lineofpeople = ["katrina", "kevin", "vincent"]
        console.log(currentLine(lineofpeople));
        

        【讨论】:

          【解决方案5】:

          您可以使用正则表达式删除最后一个逗号

          $ 用于匹配字符串的结尾

          let line = 'string1, string2, string3, string4, string5,'
          
          console.log(line.replace(/,$/g,''))

          【讨论】:

            【解决方案6】:

            只检查当前索引是否是最后一个,如果是,不要加逗号:

            for (var crrLine = 0; crrLine < katzDeliLine.length; crrLine++) {
            
                    textToPrint = textToPrint + (crrLine + 1) + ". " + katzDeliLine[crrLine] + (crrLine != (katzDeliLine.length - 1) ? "," : "")
            
                }
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2019-10-04
              • 2021-01-17
              • 1970-01-01
              • 2020-01-24
              • 1970-01-01
              • 2013-11-24
              • 2017-09-29
              • 1970-01-01
              相关资源
              最近更新 更多