递归javascript函数

时间:2012-11-28 20:53:04

标签: javascript recursion

这是file1:

file1
include file2;

这是file2:

file2
include file3;

这是file3:

file3
include file4;

这是file4:

file4

最终结果应为:

file1
file2
file3
file4

这有什么不对吗?

function recurse(data, callback) {
    if (data.match(/include(.*)\;/)) {
        var fn = data.match(/include(.*)\;/)[1];
        var filetxt = readfile(fn);
        recurse(filetxt, callback);
    } else {
        callback(data);
    }
}
var txt = recurse(readfile('file1'), function(s) {
    console.log(s);
})

1 个答案:

答案 0 :(得分:2)

将正则表达式更改为

/include (.*)\;/

以便匹配组捕获"fileN"而不是" fileN"(请注意前导空格)。