试图写出非常强大的功能。我用chrome来调试,发现当我尝试分配pow的结果时它会在val1上轰炸。我尝试使用array [element]和array [element] .value,但它也不喜欢。
//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.";
}
}
答案 0 :(得分:1)
你正在使用pow .in javascript它的Math.pow() 将您的代码替换为此
val1 = Math.pow(arrayOfNum[0].value, 3);
val2 = Math.pow(arrayOfNum[1].value, 3);
val3 = Math.pow(arrayOfNum[2].value, 3);