代码之家  ›  专栏  ›  技术社区  ›  PineNuts0

JavaScript:使用Join使数组成为字符串,使用输入参数作为分隔符Btw Words-->Replace Error

  •  0
  • PineNuts0  · 技术社区  · 7 年前

    我有以下代码:

    function myJoin(array, separator) {
    
      let newStr = array.join(separator).replace("\", "")
    
        return newStr
    
      }
    
      myJoin(['let\'s', 'make', 'a', 'list'], ' ');

    evalmachine.<anonymous>:21
      let newStr = array.join(separator).replace("\", "")
                                                       ^^
    SyntaxError: Invalid or unexpected token
    

    我的替换方法有什么问题?

    4 回复  |  直到 7 年前
        1
  •  1
  •   Kognise    7 年前

    "\" . 反斜杠转义结束引号,表示字符串未闭合。应该是的 "\\"

    function myJoin(array, separator) {
      const newStr = array.join(separator).replace('\\', '')
      return newStr
    }
    
    const result = myJoin(['let\'s', 'make', 'a', 'list'], ' ')
    console.log(result)

    如果你有兴趣, here 这是一篇关于转义字符的文章。

        2
  •  1
  •   Mark    7 年前

    你不需要 replace()

    这个 \

    function myJoin(array, separator) {
        return array.join(separator) // you don't need replace here
    }
      
    console.log(myJoin(['let\'s', 'make', 'a', 'list'], ' '))
      
        3
  •  0
  •   David Goldfarb    7 年前

    问题是 "\" . 反斜杠是JavaScript中的引号字符,它使下一个字符按字面意义处理。你需要写信 "\\" 创建包含一个反斜杠字符的字符串。

        4
  •  0
  •   Miroslav Glamuzina    7 年前

    你在逃避危险 " \\ replace() string join() 之前 .

    这将达到以下目的:

    console.log(['let\'s', 'make', 'a', 'list'].join(" ").replace("\\", ""));

    看起来你想把这个应用到 array 具体来说,原型呢?

    Array.prototype.replace = function(separator = " ") {
      return this.join(separator).replace("\\", "");
    };
    
    // Can be called like so 
    console.log(['let\'s', 'make', 'a', 'list'].replace(" "));
    推荐文章