Javascript,for循环,不带值
获取值的表单:Javascript,for循环,不带值,javascript,for-loop,decrement,Javascript,For Loop,Decrement,获取值的表单: <input name="validatecard" type="text" id="myCardNumber"> <input onclick="isLuhn()" type="button" value="Check Credit Card" /> 现在这几乎可以工作了,它在cardnumber变量上迭代,sum1和sum2接受值。但是我仍然在迭代变量cardnumber的相对长度,而不是其中的值。这就是问题所在吗 (+cardnumber[i])
<input name="validatecard" type="text" id="myCardNumber">
<input onclick="isLuhn()" type="button" value="Check Credit Card" />
现在这几乎可以工作了,它在cardnumber变量上迭代,sum1和sum2接受值。但是我仍然在迭代变量cardnumber的相对长度,而不是其中的值。这就是问题所在吗
(+cardnumber[i]);
该怎么办
for(i = cardnumber.length; i > 0; i -=2){
for (e = cardnumber.length; e > 0; e -=2){
由于您的for
循环是反向的,因此循环条件是i>0
和e>0
,否则它们永远不会执行
从
JavaScript for循环的语法如下所示:
for(初始;条件;循环语句){/* 每次都将执行语句 for{}循环循环,,而 满足条件*/
} 除了要加载号码的第i个数字之外,您还应该这样做:
for(var len = cardnumber.length, i = len - 1; i >= 0; i -=2){
sum1 = sum1 * cardnumber[i];
注意
0..n-1
而不是1..n
i=0
时,循环也必须输入,以便i>=0
的for条件必须为true不需要有parseInt。由于乘法假设数字,Javascript使您的
i-th
字符成为一个数字。当然,谢谢,我在这一点上失去了冷静,也因此失去了理智。我遇到的实际问题是我在更新中写的,让迭代处理cardnumber中的实际数字,而不是cardnumber的长度。我花了太多的时间研究这个问题,却没有找到答案。parseInt是这里的助手吗?charAt?谢谢你到目前为止的宝贵意见。有时间做最后一次(希望是)跟进吗?:)
for(var len = cardnumber.length, i = len - 1; i >= 0; i -=2){
sum1 = sum1 * cardnumber[i];