用于循环1循环后停止

时间:2014-10-06 22:43:15

标签: javascript for-loop ascii

我正在尝试编写一些代码,根据输入数字自动生成一些ASCII文本。基本上,输入到函数的数字将被返回,因为数字"被放大"在ascii文本中。所以输入0123456789输出:

-**----*--***--***---*---****--**--****--**---**--
*--*--**-----*----*-*--*-*----*-------*-*--*-*--*-
*--*---*---**---**--****-***--***----*---**---***-
*--*---*--*-------*----*----*-*--*--*---*--*----*-
-**---***-****-***-----*-***---**---*----**---**--
--------------------------------------------------

我逐行将每个数字编码成一个数组,代码循环遍历每个数字输入的数组并构建组合的结束图像。生成部分似乎工作正常,但由于某种原因,我的结束变量在最后没有正确使用,主循环只处理输入的第一个数字然后停止。任何帮助是极大的赞赏! http://jsfiddle.net/dmcuj2z5/

function printNums(line){
    var nums = [['12','03','03','03','12'],['2','12','2','2','123'],['012','3','12','0','0123'],['012','3','12','3','012'],['1','03','0123','3','3'],['0123','0','012','3','012'],['12','0','012','03','12'],['0123','3','2','1','1'],['12','03','12','03','12'],['12','03','123','3','12']];

    var answer = ['','','','','',''];
    var allowed = '0123456789';
    for(var i=0;i<line.length;i++){
        var num = line[i];
        if(allowed.indexOf(num) !== -1){
            for(var l=0;l<6;l++){    
                var print = '';
                for(var c=0;c<5;c++){
                    if(nums[num][l].indexOf(c) !== -1){
                        print += '*';
                    }else{
                        print += '-';
                    }
                }
               answer[l] += print;
            }
        }
    }
    alert(answer);
}

printNums('123');

1 个答案:

答案 0 :(得分:2)

您的结束变量是一个数组。 输出它只需将它与一个新行联合起来:

function printNums(line){
    var nums = [['12','03','03','03','12'],['2','12','2','2','123'],['012','3','12','0','0123'],['012','3','12','3','012'],['1','03','0123','3','3'],['0123','0','012','3','012'],['12','0','012','03','12'],['0123','3','2','1','1'],['12','03','12','03','12'],['12','03','123','3','12']];

    var answer = ['','','','','',''];
    var allowed = '0123456789';
    for(var i=0;i<line.length;i++){
        var num = line[i];
        if(allowed.indexOf(num) !== -1){
            for(var l=0;l<5;l++){    
                var print = '';
                for(var c=0;c<5;c++){
                    if(nums[num][l].indexOf(c) !== -1){
                        print += '*';
                    }else{
                        print += '-';
                    }
                }
               answer[l] += print;
            }
        }
    }
    console.log(answer.join("\n"));
}

printNums('123');

// --*--***--***--
// -**-----*----*-
// --*---**---**--
// --*--*-------*-
// -***-****-***--