将每个数字替换为(该数字加上7的总和)模数10

时间:2014-02-05 03:53:53

标签: javascript modulus

我需要从用户那里获得输入并将每个数字替换为(该数字的总和 加7)模数10;但是,我的公式计算不正确。你会帮我调试吗? 谢谢

<script type="text/javascript">
var input = window.prompt("Enter Four-digit numbers:","0000");
    var digits = input.split("");

    var digit1=digits[0];
    var digit2=digits[1];
    var digit3=digits[2];
    var digit4=digits[3];

    digit1=((digit1+7) % 10);
    digit2=((digit2+7) % 10);
    digit3=((digit3+7) % 10);
    digit4=((digit4+7) % 10);

    document.writeln(digit1+"<br/>"+digit2+ "<br/>"+digit3+ "<br/>"+digit4);    
</script>

2 个答案:

答案 0 :(得分:3)

split函数返回一个字符串数组。你不能对字符串进行加法和取模数等算术运算,因此你需要将它们转换为数字:

var digit1 = parseInt(digits[0], 10);
var digit2 = parseInt(digits[1], 10);
var digit3 = parseInt(digits[2], 10);
var digit4 = parseInt(digits[3], 10);

答案 1 :(得分:1)

试试这个: - http://jsfiddle.net/adiioo7/Ze9Vu/

    digit1=((+digit1+7) % 10);
    digit2=((+digit2+7) % 10);
    digit3=((+digit3+7) % 10);
    digit4=((+digit4+7) % 10);

javascript: plus symbol before variable

var a = "1";
var b = a;  // b = "1": a string
var c = +a;  // c = 1: a number
var d = -a;  // d = -1: a number