javascript for 循环提前退出

标签 javascript for-loop ecmascript-6

下面是一个简单的函数。它将数组中的所有数字相加并存储在变量中。问题是,即使不满足退出循环的条件,循环也只执行一次。我在这里遗漏了什么吗?

const numChecker = (...args) => {
  let x = args;
  let y;
  let i;
    for (i = 0; i < x.length - 1; i++) {
      if ((typeof x[i]) === "number") {
      y += x[i];
      }
      return y;
    }
 }

console.log(numChecker("A", "B", "C", 100, 300, 200));

最佳答案

您的代码存在 3 个问题:-

  1. 第一个是let y; .
  2. 第二个是 i < x.length - 1 .
  3. 你正在做return y在错误的地方。

在第一期中,当你声明像这样的变量 let y ,然后 typeof(y)未定义。在这里,您要存储 sum of numbers ,所以变量 y类型必须为 number 。因此,您必须像 let y = 0 那样声明并初始化它。 ;

在第二个循环中,数组将被解析为倒数第二个元素。 x[4]在你的情况下。所以,循环中的条件应该像 i < x.length .

最后,您必须return y在循环之外,以便将总和打印在 console 上将是所有 numbersarray .

检查下面的代码段。

const numChecker = (...args) => {
  let x = args;
  let y = 0;
  let i;
  for (i = 0; i < x.length; i++) {
    if ((typeof x[i]) === "number") {
      y += x[i];
    }
  }
  return y;
}

console.log(numChecker("A", "B", "C", 100, 300, 200));

希望它能解决您的问题。

关于javascript for 循环提前退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52638512/

相关文章:

javascript - 如何在更改时从下拉列表中打印第一个元素?

c++ - 在 "for"语句中声明 for 循环的计数器是否更有效?

python - 类型错误 : unsupported operand type(s) for +: 'NoneType' and 'float'

javascript - React 和 ES6 继承

ios - 为什么调试在 React Native 项目中不起作用?

javascript - 为什么javascript在第二种情况下不查找全局范围

javascript - 如何重写基本操作/ reducer 以使用 promise

javascript - Node 类型错误: Promise resolver #<Promise> is not a function

JavaScript 循环数组,将价格属性乘以 2

反转名称的 JavaScript 函数无法正常工作(来自 Learning JavaScript - O'Reilly 的示例)