For Loop使用Javascript和计算

时间:2014-09-09 11:32:43

标签: javascript

我已经接受了一个模拟测试来完成java脚本,但是我很难弄清楚如何使用for循环来计算预定义的变量数,然后将该数字用于其他方程式。

这就是我需要做的......

  1. 根据位置
  2. 将前九位数中的每一位乘以加权系数
  3. 将每个乘法的结果加在一起。
  4. 将总数除以11并确定余数。
  5. 从11中减去余数以给出校验位
  6. 起始位置是1 - 9,加权因子例如是10-2

    SP | WF 1 | 10,2 | 9,3 | 8,4 | 7,5 | 6,6 | 5,7 | 4,8 | 3,9 | 2

    这是我到目前为止所做的代码,但是在使用for循环来计算数字var而不是1-9时,我有点困惑。我已经跳过它并继续执行正在运行的代码我无法正常工作for循环以及var的整体部分我正在努力。

    //setting variable to equal a number
    var number = "4010232137"; 
    
    //return value is set to 0 to use as a boolean so if code is false before then IF           statement not used
    var returnValue = 0;
    
    //confirming length of number so it meets reuirement of being 10 digits long
    var length = n.length;
    
        var weightFactor = 11 - i;
        // get the "ith" character
        c = n.charAt(i);
        var result = c * weightFactor;
        var total = total + result;
        }
    }
    
    var tenthDigit = number.slice(9);
    var remainder = total % 11;
    var checkDigit = 11 - remainder;
    
    if(checkDigit == 11){
        var checkDigit = 0;
    }
    
    if(checkDigit == tenthDigit){
        var returnValue = 1;
    }
    
    WScript.echo(returnValue)
    }
    

1 个答案:

答案 0 :(得分:0)

您想要做的事情相当简单,一步一步:

var number = "4010232137";
var result = 0;
var wf = 10;

这些是你的初始变量,结果将包含与加权因子相乘后的和,该加权因子将从10开始,并在每个循环间隔后减少1:

for(var i=0; i<number.length - 1; i++){ //multiplying first '9' digits by wf
    result += number[i]*wf;
    wf--;
}

这是将前9位乘以wf并加上总和的简单循环。看看wf如何减少1,所以第一个数字将乘以10,然后乘以9,依此类推......在这种情况下,sum(result)将是&#39; 92&#39;。

var remainder = result % 11;
var checkDigit = 11 - remainder;

接下来我们计算了余数并检查了数字。

var tenthDigit = number[number.length-1]; //last digit
var returnValue = 0;

if(checkDigit == 11)
    checkDigit = 0;
else if(checkDigit == tenthDigit)
    returnValue = 1;

然后是你计算返回值的逻辑。在这种情况下,它将是1,因为checkDigit和tenthDigit都是7。

<强> Here you can find the complete working code along with results.