我已经接受了一个模拟测试来完成java脚本,但是我很难弄清楚如何使用for循环来计算预定义的变量数,然后将该数字用于其他方程式。
这就是我需要做的......
起始位置是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)
}
答案 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. 强>