如何将此代码更改为递归形式

时间:2014-03-29 01:49:53

标签: javascript recursion

此代码可以生成类似这样的字符串' x,x,x' 我想以递归形式制作或更改此代码,以使x的数量依赖于变量Y我选择它! 例如:我把Y = 4,脚本生成这样的字符串' x,x,x,x'

代码

        var T = new Array ('a','b','c');
        var n = 0 , c = 1 ;
        for (var i = 0 ; i <= 2 ; i++){
            var j = 0   ;
            while (j <= n){
                for (;j <= 2 ; j++){
                    var k = 0  ;
                    while (k <= j){
                        for (;k <= 2 ; k++){
                            document.write(c + ' - ' + T[i]+' , '+ T[j] +' , '+ T[k] +' <br    /> ');
                            c++;
                        }
                    }
                }
            }

        }

此代码的结果是: http://i.stack.imgur.com/2c2ts.png

所以我试着制作一个可以安排替换alphas的脚本!

1 个答案:

答案 0 :(得分:3)

Demo

function list(target, letters, lvls) {
    var index = 0;
    (function iter(s, lvl) {
        if(lvl++ == lvls)
            return target.appendChild(document.createTextNode(
                ++index + ' - ' + s + '\n'
            ));
        for(var i=0; i<letters.length; ++i)
            iter(s + letters[i], lvl);
    })('', 0);
}
list(document.getElementById('output'), 'abc', 3);