为什么我在下面的..of循环中得到意外令牌

Why am I getting Unexpected token [ in the following for...of loop?

本文关键字:意外 令牌 循环 在下面 of 为什么      更新时间:2023-09-26

代码所做的是获取一个字符串,并使用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。

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

var arr=[[1,2],[3,4],[5,6]];
for([a,b] of arr) {
    console.log(a+b);
}

一旦let被移除,我就取得了巨大的成功。这产生了预期的输出:

3
7
11