Javascript 变量连接而不是添加
Javascript Variable concatenate instead of adding
需要在 for 循环中添加变量的值 .. 但不是添加而是连接 ..我需要加在一起...
我会提供我的代码请帮助..
//curage is current age
//fna is firstname
var bbbb=0;
while(bbbb < curage )
{
for(var i=0; i<fna.length; i++)
{
bbbb += lettervalue(fna.charAt(i));
}
}
function lettervalue(g)
{
switch(g)
{
case "a": return "1";
case "b": return "2";
case "c": return "3";
case "d": return "4";
case "e": return "5";
case "f": return "6";
case "g": return "7";
case "h": return "8";
case "i": return "9";
case "j": return "1";
case "k": return "2";
case "l": return "3";
case "m": return "4";
case "n": return "5";
case "o": return "6";
case "p": return "7";
case "q": return "8";
case "r": return "9";
case "s": return "1";
case "t": return "2";
case "u": return "3";
case "v": return "4";
case "w": return "5";
case "x": return "6";
case "y": return "7";
case "z": return "8";
default : return "0"
}
}
我得到的结果是 1234,但我需要求和,例如 1+2+3+4 = 10。
您需要删除 lettervalue
函数中数字两边的引号,这会使 Javascript 将它们视为字符串而不是数字。
例如:
case "d": return 4;
而不是
case "d": return "4";
return 整数,即不带引号的 1,2 应该可以解决您的问题。
否则试试
bbbb += parseInt(lettervalue(fna.charAt(i)));
如评论中所建议,return 数字而不是字符串。否则 javascript 使用 + 运算符构建一个字符串,认为您想连接字符而不是添加数字。
case "a": return 1;
case "b": return 2;
case "c": return 3;
case "d": return 4;
而不是
case "a": return "1";
改成..
case "a": return 1;
需要在 for 循环中添加变量的值 .. 但不是添加而是连接 ..我需要加在一起...
我会提供我的代码请帮助..
//curage is current age
//fna is firstname
var bbbb=0;
while(bbbb < curage )
{
for(var i=0; i<fna.length; i++)
{
bbbb += lettervalue(fna.charAt(i));
}
}
function lettervalue(g)
{
switch(g)
{
case "a": return "1";
case "b": return "2";
case "c": return "3";
case "d": return "4";
case "e": return "5";
case "f": return "6";
case "g": return "7";
case "h": return "8";
case "i": return "9";
case "j": return "1";
case "k": return "2";
case "l": return "3";
case "m": return "4";
case "n": return "5";
case "o": return "6";
case "p": return "7";
case "q": return "8";
case "r": return "9";
case "s": return "1";
case "t": return "2";
case "u": return "3";
case "v": return "4";
case "w": return "5";
case "x": return "6";
case "y": return "7";
case "z": return "8";
default : return "0"
}
}
我得到的结果是 1234,但我需要求和,例如 1+2+3+4 = 10。
您需要删除 lettervalue
函数中数字两边的引号,这会使 Javascript 将它们视为字符串而不是数字。
例如:
case "d": return 4;
而不是
case "d": return "4";
return 整数,即不带引号的 1,2 应该可以解决您的问题。
否则试试
bbbb += parseInt(lettervalue(fna.charAt(i)));
如评论中所建议,return 数字而不是字符串。否则 javascript 使用 + 运算符构建一个字符串,认为您想连接字符而不是添加数字。
case "a": return 1;
case "b": return 2;
case "c": return 3;
case "d": return 4;
而不是
case "a": return "1";
改成..
case "a": return 1;