为什么Javascript中的这段代码只返回一个值

时间:2016-09-10 17:36:45

标签: javascript

我正在尝试编写将采用所有两位数字的代码,将它们分成数字,将数字平方然后添加它们。之后,它将重复该过程,直到产生一位数字。

for (i=11;i<25;i++) {
  var array = (i).toString(10).split("").map(Number)
  var element0 = array[0]
  var element1 = array[1]
  var total = (element0*element0)+(element1*element1)
  while (total>9) {
    array = (total).toString(10).split("").map(Number)
    element0 = array[0]
    element0 = array[1]
    total = (element0*element0)+(element1*element1)
  }
  if (total == 1) {
    console.log(i + " is correct")
  }
}

每当我运行此过程时,浏览器会冻结,我必须强行关闭它。我是Javascript的新手,所以我将不胜感激任何帮助。谢谢。

1 个答案:

答案 0 :(得分:0)

您应该调试代码,例如,这样的简单警告:

for (i=11;i<25;i++) {
var array = (i).toString(10).split("").map(Number)
var element0 = array[0]
var element1 = array[1]
var total = (element0*element0)+(element1*element1)
while (total>9) {
array = (total).toString(10).split("").map(Number)
element0 = array[0]
element0 = array[1]
total = (element0*element0)+(element1*element1)
alert(total)
}
if (total == 1) {
console.log(i + " is correct")
}
}

会告诉你问题,脚本每三次迭代就会持续获得相同的三个数字!

P.S。使用分号终止语句是一种很好的做法,即使它不是必需的:)