JavaScript文本到数字转换器故障
我使用以下代码将文本转换为数字:JavaScript文本到数字转换器故障,javascript,Javascript,我使用以下代码将文本转换为数字: var vals= ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p"
var vals= ["a","b","c","d","e","f","g","h","i","j","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"," ",",",".","!","?","/","\\","#","@","=","-","_",":"];
var input = prompt("Input:");
var inn = input.toLowerCase + "";
var ins = inn.split("");
var pswrd = prompt("Password(LowerCase):")
var pin = pswrd.toLowerCase + "";
var pins = pin.split("");
var out = "";
var i;
var mul = Math.floor((Math.random() * 30) + 1);
for(i=0;i<ins.length;i++){
var num = ins[i]
var val = vals.indexOf(num)
var out = out+val*mul+" "
}
var out = out+"ↀ"
for(i=0;i<pins.length;i++){
var num = pins[i]
var val = vals.indexOf(num)
var out = out+val*mul+" "
}
alert('Result:' + out);
var VAL=[“a”、“b”、“c”、“d”、“e”、“f”、“g”、“h”、“i”、“j”、“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”、“8”、“8”、“8”、“9”、“8”、“8”、“8”、“8”、“9”、“8”、“8”、“8”、“9”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“;
变量输入=提示(“输入:”);
var inn=input.toLowerCase+“”;
var ins=客栈分割(“”);
var pswrd=prompt(“密码(小写):”)
var pin=pswrd.toLowerCase+“”;
var引脚=引脚拆分(“”);
var out=“”;
var i;
var mul=Math.floor((Math.random()*30)+1);
对于(i=0;i您需要调用toLowerCase
方法,而不是像访问对象上的属性一样尝试访问它。我怀疑您已经从这些行中得到了错误,这是基于连接的空字符串-这使您的错误消失,但没有“修复”您的代码
另一方面,您可以调用多个方法,而不是为数据变异的每一步创建新变量。我也不知道,当您已经将当前索引存储在I
中时,为什么要在循环中调用indexOf
无论如何,我不会为您重构整个代码块……但请尝试以下方法:
var vals= ["a","b","c","d","e","f","g","h","i","j","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"," ",",",".","!","?","/","\\","#","@","=","-","_",":"];
var input = prompt("Input:");
var pswrd = prompt("Password(LowerCase):")
var inn = input.toLowerCase().split("");
var pin = pswrd.toLowerCase().split("");
var out = "";
var i;
var mul = Math.floor((Math.random() * 30) + 1);
for(i=0;i<inn.length;i++){
var num = inn[i]
var val = vals.indexOf(num)
var out = out+val*mul+" "
}
var out = out+"ↀ"
for(i=0;i<pin.length;i++){
var num = pin[i]
var val = vals.indexOf(num)
var out = out+val*mul+" "
}
alert('Result:' + out);
var VAL=[“a”、“b”、“c”、“d”、“e”、“f”、“g”、“h”、“i”、“j”、“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”、“8”、“8”、“8”、“9”、“8”、“8”、“8”、“8”、“9”、“8”、“8”、“8”、“9”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“;
变量输入=提示(“输入:”);
var pswrd=prompt(“密码(小写):”)
var inn=input.toLowerCase().split(“”);
var pin=pswrd.toLowerCase().split(“”);
var out=“”;
var i;
var mul=Math.floor((Math.random()*30)+1);
对于(i=0;i您需要调用toLowerCase
方法,而不是像访问对象上的属性一样尝试访问它。我怀疑您已经从这些行中得到了错误,这是基于连接的空字符串-这使您的错误消失,但没有“修复”您的代码
另一方面,您可以调用多个方法,而不是为数据变异的每一步创建新变量。我也不知道,当您已经将当前索引存储在I
中时,为什么要在循环中调用indexOf
无论如何,我不会为您重构整个代码块……但请尝试以下方法:
var vals= ["a","b","c","d","e","f","g","h","i","j","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"," ",",",".","!","?","/","\\","#","@","=","-","_",":"];
var input = prompt("Input:");
var pswrd = prompt("Password(LowerCase):")
var inn = input.toLowerCase().split("");
var pin = pswrd.toLowerCase().split("");
var out = "";
var i;
var mul = Math.floor((Math.random() * 30) + 1);
for(i=0;i<inn.length;i++){
var num = inn[i]
var val = vals.indexOf(num)
var out = out+val*mul+" "
}
var out = out+"ↀ"
for(i=0;i<pin.length;i++){
var num = pin[i]
var val = vals.indexOf(num)
var out = out+val*mul+" "
}
alert('Result:' + out);
var VAL=[“a”、“b”、“c”、“d”、“e”、“f”、“g”、“h”、“i”、“j”、“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”、“8”、“8”、“8”、“9”、“8”、“8”、“8”、“8”、“9”、“8”、“8”、“8”、“9”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“;
变量输入=提示(“输入:”);
var pswrd=prompt(“密码(小写):”)
var inn=input.toLowerCase().split(“”);
var pin=pswrd.toLowerCase().split(“”);
var out=“”;
var i;
var mul=Math.floor((Math.random()*30)+1);
因为(i=0;i你的编码方式很糟糕,javascript应该比这更好
const vals='abcdefghijklmnopqrstuvwxyz012456789,.!?/\\\\\\\\\\\\\\\\\\\\\\\@=-\\:'
var mul=Math.floor((Math.random()*30)+1)
,inn=(提示符('Input:')。toLowerCase()
,pin=(提示符('Password(小写):')).toLowerCase()
;
var out=''
(出租客栈的信件)
out+=`${vals.indexOf(字母)*mul}`;
输出+='ↀ'
对于(请输入pin字母)
out+=`${vals.indexOf(字母)*mul}`;
警报('结果:'+out)
你的编码方式很糟糕,javascript应该比这更好
const vals='abcdefghijklmnopqrstuvwxyz012456789,.!?/\\\\\\\\\\\\\\\\\\\\\\\@=-\\:'
var mul=Math.floor((Math.random()*30)+1)
,inn=(提示符('Input:')。toLowerCase()
,pin=(提示符('Password(小写):')).toLowerCase()
;
var out=''
(出租客栈的信件)
out+=`${vals.indexOf(字母)*mul}`;
输出+='ↀ'
对于(请输入pin字母)
out+=`${vals.indexOf(字母)*mul}`;
警报('结果:'+out)
您希望输入字符串的输出是什么?toLowerCase
应该是toLowerCase()
无需将其设置为带有“
”的字符串,默认情况下,您将获得string
pswrd.toLowerCase().split(“”)
您希望输入字符串的输出是什么?toLowerCase
应该是toLowerCase()
无需将其设置为带有“
”的字符串,默认情况下,您将获得字符串pswrd.toLowerCase().split(”;