【发布时间】:2015-01-13 08:07:50
【问题描述】:
我制作了以下函数,根据指令将给定的字符串转换为代码。
现在我面临的问题是,当我通过传递字符串 sanmveg 运行此函数时,它会很好地转换它,但在上面的字符串中跳过 alphabat 是 v:
我的函数如下所示:
function coder(str){
str = str.replace(/[ ]+/g,'');
str = str.split('');// now str is an Array
var code ='';
for(var i=0;i<str.length;i++){ // now suppose i here is A
console.log(str[i])
for(var j=0; j<hr.length;j++){
for(var k=0;k<hr[j].length;k++){
if(hr[j][k] === str[i]){
code = code+'#'+String(j)+'@'+String(k)+'~';
}// end of if statement
}// end of k loop
}// end of j loop
}// end of i loop
return code;
};// end of coder function
这里的hr 表示horizontal rows,是一个多维数组:
var hr = [['A','B','C','D','E','F','G','H','I','J'],
['a','b','c','d','e','f','g','h','i','j'],
['K','L','M','N','O','P','Q','R','S','T'],
['k','l','m','n','o','p','q','r','s','t'],
['U','V','W','X','Y','Z','0','1','2','3'],
['4','5','6','7','8','9','!','@','#','$'],
['%','^','&','*','(',')','-','=','_','+'],
['[',']','{','}',':',';',',','/','.','<'],
['>','?',' ']];
问题
coder(sanmveg) //#3@8~#1@0~#3@3~#3@2~#1@4~#1@6~
但这实际上应该是#3@8~#1@0~#3@3~#3@2~#5@1~#1@4~#1@6~
所以这显然意味着嵌套的 for 循环正在跳过某个索引
如何解决这个问题
尽可能解释
每一点帮助都会很棒
【问题讨论】:
-
拿调试器调试一下。
标签: javascript for-loop multidimensional-array