For循环停止1循环后

问题描述:

我想写一些代码来自动生成一些基于输入数字的ASCII文本。基本上输入到函数的数字将以ascii文本中的“放大”数字返回。所以沃尔德输出的输入:For循环停止1循环后

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

我编码由线每个数字线到一个数组和代码循环通过阵列的每个号码输入并建立组合结束图像。生成部分似乎工作正常,但由于某种原因,我的最终变量在最后不能正常使用,并且主循环只处理输入的第一个数字,然后停止。任何帮助是极大的赞赏! 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 = ''; 
    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'); 
+4

至少在这里'为(VAR升= 0;升 Cheery 2014-10-06 22:47:25

+0

那是什么实际破它。我需要它是6,因为所有输出的底线应该是相同的,但是我在阵列中没有空的条目。现在工作!谢谢@Cheery! http://jsfiddle.net/dmcuj2z5/2/ – 2014-10-06 22:51:40

+0

请注意'print'也是一个内置函数。 – 2014-10-06 22:55:08

你端变量是一个数组。 为了输出它只是用一个新行关节它:

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 = ''; 
    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'); 

// --*--***--***-- 
// -**-----*----*- 
// --*---**---**-- 
// --*--*-------*- 
// -***-****-***-- 
+0

是的,现在工作。谢谢@jantimon! – 2014-10-06 22:53:21