2015-04-04 3 views
0

Попытка написать функцию armstrong. Я использовал хром для отладки и обнаружил, что он бомбит на val1, когда я пытаюсь назначить результат pow. Я попробовал как с массивом [element], так и с массивом [element] .value, но это тоже не понравилось.Параметры javascript pow - цифры Армстронга

//Armstrong numbers 
 
function armstrong() { 
 

 
var numberStr = document.getElementById('inputNumber').value; 
 
var numberInt = parseInt(numberStr); 
 
var arrayOfNum = numberStr.split(''); 
 
var val1, val2, val3, total = 0; 
 
    
 
var displayResult = document.getElementById('displayResult'); 
 

 
for (i = 0; i < arrayOfNum.length; i++) { 
 
    arrayOfNum[i] = parseInt(arrayOfNum[i]); 
 
} 
 

 
if (arrayOfNum.length === 3) { 
 
    val1 = Math.pow(arrayOfNum[0], 3); 
 
    val2 = Math.pow(arrayOfNum[1], 3); 
 
    val3 = Math.pow(arrayOfNum[2], 3); 
 
    
 
    total = val1 + val2 + val3; 
 

 
    if (total === numberInt) { 
 
     //display msg that number is armstrong 
 
     displayResult.innerHTML = "Your number " + numberInt + " is an Armstrong Number."; 
 
    } else { 
 
     //display msg that not armstrong 
 
     displayResult.innerHTML = "Your number " + numberInt + " is NOT an Armstrong Number."; 
 
    } 
 
} else { 
 
    // display msg to enter a 3 digit number   
 
    displayResult.innerHTML = "You must enter a 3 digit number."; 
 
} 
 
}

+1

выше код был отредактирован, чтобы показать решение. Я внедрил предложение Мухаммада, а также проанализировал начальное значение как целое число, оно хранило его как строку, даже несмотря на то, что значение было использовано, а элемент имел номер типа. – JReam

ответ

1

вы используете Pow .в Javascript его Math.pow() заменить код на этот

val1 = Math.pow(arrayOfNum[0].value, 3); 
val2 = Math.pow(arrayOfNum[1].value, 3); 
val3 = Math.pow(arrayOfNum[2].value, 3); 
+0

Спасибо! Я удалил .value из массивов, а также parseInt() 'd введенное значение в переменную сравнения. Элемент ввода имеет тип «число», но он все еще сохраняет начальное входное значение в виде строки? Вы думаете, что JS сохранит правильный тип данных, если он будет указан в элементе? – JReam

Смежные вопросы