Javascript 使用模数循环
我被困在作业的最后一部分已经很长时间了。我试着用模数循环字母表。delta是你必须向前或向后移动才能得到真实字母的字母数。因此,如果给定getchars(“H”,-2),函数应该返回F。但是,如果chars.charAt(chars.getIndexOf(data.charAt(i)))等于小于0的数字,则会出现问题。我希望能够给出我的函数(“A”、-1)或任何负数,并让它返回“Z” 这是一个课堂作业,所以如果可能的话,请把它保持在刚度。我已经做了两个小时了Javascript 使用模数循环,javascript,loops,Javascript,Loops,我被困在作业的最后一部分已经很长时间了。我试着用模数循环字母表。delta是你必须向前或向后移动才能得到真实字母的字母数。因此,如果给定getchars(“H”,-2),函数应该返回F。但是,如果chars.charAt(chars.getIndexOf(data.charAt(i)))等于小于0的数字,则会出现问题。我希望能够给出我的函数(“A”、-1)或任何负数,并让它返回“Z” 这是一个课堂作业,所以如果可能的话,请把它保持在刚度。我已经做了两个小时了 function getChars(
function getChars(data,delta)
{
var chars;
var i;
var foundAt;
var newString;
chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
data = data.toUpperCase();
delta = Math.min(chars.length, delta);
i = 0;
newString = "";
while (i < data.length)
{
if(delta <= 0)
{
foundAt = (chars.indexOf(data.charAt(i)) + delta) ;window.alert(foundAt)
//newString = newString + chars.charAt(foundAt);
//i = i + 1;
}
else if((chars.indexOf(data.charAt(i)) < 0))
{
foundAt = data.charAt(i);
newString = newString + foundAt;
i = i + 1;
}
else
{
foundAt = ((chars.indexOf(data.charAt(0 + i)) + delta)) % chars.length;window.alert(foundAt);
newString = newString + chars.charAt(foundAt);window.alert(newString);
i = i + 1;
}
}
//return newString;
}
函数getChars(数据,增量)
{
var-chars;
var i;
var foundAt;
var-newString;
chars=“abcdefghijklmnopqrstuvxyz”;
data=data.toUpperCase();
增量=数学最小值(字符长度,增量);
i=0;
新闻字符串=”;
而(ii=chars.length-1;
,然后首先使用中的,您必须使用自己的:
使用以下代码:
function getChars(data,delta)
{
var chars;
var i;
var foundAt;
var newString;
chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
data = data.toUpperCase();
i = 0;
newString = "";
while (i < data.length)
{
newString += chars.charAt(modulus(chars.indexOf(data[i])+delta,26))
i++;
}
return newString;
}
函数getChars(数据,增量)
{
var-chars;
var i;
var foundAt;
var-newString;
chars=“abcdefghijklmnopqrstuvxyz”;
data=data.toUpperCase();
i=0;
新闻字符串=”;
而(i
Simple if语句-你有26个字母。如果字母ID<0,字母ID=25。(25因为js有0个索引)为什么你需要一个while循环?你不能先算出字母的索引,然后加上delta,然后取模吗?你能解释一下这部分:模(chars.indexOf(data[i])+delta,26)chars.indexOf(data[i])
返回字符列表中数据[i]
字符的索引。我们加上增量,然后用26计算模数,得到一个介于0和25之间的数字。很抱歉,我们还没有学习列表,所以我对它们不熟悉。是否只需传递chars.indexOf(数据(i))就可以了我这么问是因为我尝试了,但失败了。你哪里有问题?我解决了。非常感谢
function getChars(data,delta)
{
var chars;
var i;
var foundAt;
var newString;
chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
data = data.toUpperCase();
i = 0;
newString = "";
while (i < data.length)
{
newString += chars.charAt(modulus(chars.indexOf(data[i])+delta,26))
i++;
}
return newString;
}