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];