如何停止这个for循环?

How to stop this for-loop?

var number = prompt("Typ some numbers:")
var som = 0

for (var x = 0; x < number.length; x++) {
  if (!(number[x] === 0)) {
    if ((number[x] % 2) === 1) {
      som += (number[x] * number[x])
    }
  } else {
    break;
  }
}

alert(som)

我想输入一些随机数 (0-9),然后它必须在我输入零之前说出所有奇数的平方的 som。例如,我键入:5903。5*5 + 9*9 = 106。因此,在我键入一个零之后,它必须停止 for 循环以进一步进行。但是现在,如果我输入 5903,它会显示 115,所以现在它仍然会额外计算 3*3。那么如何在输入零后让它停止呢?它现在不起作用,它会在我输入零后继续。有人知道有什么问题吗?也许是语法?

请更改

if (!(number[x] === 0)) {

if (number[x] !== '0') {

因为你在比较字符串。

工作示例:

var number = prompt("Typ some numbers:"),
    som = 0;

for (var x = 0; x < number.length; x++) {
    if (number[x] !== '0') {
        if ((number[x] % 2) === 1) {
            som += (number[x] * number[x]);
        }
    } else {
        break;
    }
}
alert(som);

您正在检查数字是否等于 0,但您的数字实际上是“0”

您需要将输入解析为整数,或者您可以使用双等号

var number = prompt("Typ some numbers:");
var som = 0;

for (var x = 0; x < number.length; x++){
  if(number[x] == 0){
    break;
  }  
  if ((number[x] % 2) === 1) {
     som += (number[x] * number[x]);
  }

}

alert(som);