将字母连接成一个单词

Join letters to 1 word

本文关键字:一个 单词 连接      更新时间:2023-09-26

我在玩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(""),为什么它不只连接到一个单词?

parser.parse是否返回单个单词"test";你只是一次打印一个字符。

你是故意这么做的吗?

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

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

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