Question

I need to get input from user and replace each digit by (the sum of that digit plus 7) modulus 10; however, my formula does not calculate correctly. will you help me to debug? Thank you

<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>
Était-ce utile?

La solution

The split function returns an array of strings. You cannot do arithmetic operations such as addition and taking modulus on strings, thus you need to convert them to numbers:

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

Autres conseils

Try this out:- 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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top