我正在尝试编写一些代码来根据输入数字自动生成一些 ASCII 文本。基本上,输入到该函数的数字将以 ascii 文本中“放大”的数字形式返回。所以输入 0123456789 wold 输出:
-**----*--***--***---*---****--**--****--**---**--
*--*--**-----*----*-*--*-*----*-------*-*--*-*--*-
*--*---*---**---**--****-***--***----*---**---***-
*--*---*--*-------*----*----*-*--*--*---*--*----*-
-**---***-****-***-----*-***---**---*----**---**--
--------------------------------------------------
我将每个数字逐行编码到一个数组中,代码循环遍历每个数字输入的数组,并构建组合的最终图像。生成部分似乎工作正常,但由于某种原因,我的结束变量在最后无法正确使用,并且主循环仅处理输入的第一个数字然后停止。任何帮助是极大的赞赏! 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');
最佳答案
你的最终变量是一个数组。 要输出它,只需将其与新行连接起来:
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');
// --*--***--***--
// -**-----*----*-
// --*---**---**--
// --*--*-------*-
// -***-****-***--
关于javascript - For 循环在 1 次循环后停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26225998/