【问题标题】:Join letters to 1 word将字母连接到 1 个单词
【发布时间】:2015-11-01 03:13:15
【问题描述】:

我在玩PEG.js

这是我的语法:

start = expression

expression = a:[a-z]+
{return a.join("");}

当我在浏览器中执行它时:

obj = parser.parse("test");
for (var i = 0; i <= obj.length; i++) {
    console.log(i + " - " + obj[i])
}

我得到这个输出:

0 - t
1 - e
2 - s
3 - t
4 - undefined

即使我在语法中使用了return a.join(""),为什么它不只连接到 1 个单词?

【问题讨论】:

  • 最佳猜测:parser.parse() 返回一个字符串。循环应该做什么?

标签: javascript peg pegjs


【解决方案1】:

parser.parse 确实返回单个单词"test";您一次只打印一个字符。

你的意思是这样做吗?

var result = parser.parse("test");
console.log(result) // "test"

【讨论】:

    【解决方案2】:

    要直接回答您的问题,每次迭代都会收到一个字母,因为字符串的作用类似于数组。因此,您一次只能使用obj[i] 访问一个字母,试试这个以返回一个单词。

    obj = parser.parse("test");
    for (var i = 0; i <= obj.length; i++) {
        console.log(i + " - " + obj)
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多