Pregunta

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>
¿Fue útil?

Solución

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

Otros consejos

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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top