为什么我得到了意外的令牌[在下面的...循环?

时间:2015-03-31 13:13:02

标签: javascript regex for-loop ecmascript-6

代码的作用是使用regexreplacement来获取字符串并替换内部内容:

#!/usr/bin/env node

'use strict'

function massReplace(text, replacementArray) {
  let results = text
  for (let [regex, replacement] of replacementArray) {
    results = results.replace(regex, replacement)
  }
  return results
}

function transformHeadings() {
  let text = `# Title

## Title`

  massReplace(text,
    [ [ /\*\*([^\*|\s]+)\*\*/g, '<strong>$1</strong>'], 
    [ /\*([^\*|\s]+)\*/g,       '<em>$1</em>' ] ]
  )
}

transformHeadings()

我收到了以下错误:

/home/alex/node/es6/index.js:7
  for (let [regex, replacement] of replacementArray) {
           ^
SyntaxError: Unexpected token [

我不确定为什么会发生这种情况,因为replacementArray实际上是transformHeadings函数中的数组。

注意:我使用io.js

1 个答案:

答案 0 :(得分:1)

就我个人而言,我没有成功地在let内使用for数组理解。请考虑以下示例:

var arr=[[1,2],[3,4],[5,6]];

for([a,b] of arr) {
    console.log(a+b);
}

删除let后,我取得了巨大成功。这会产生预期的输出:

3
7
11