早期循环退出的javascript

时间:2018-10-04 03:23:55

标签: 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));

1 个答案:

答案 0 :(得分:1)

您的代码存在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中所有numbers中的array中打印出来。

检查下面的代码段。

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));

希望,它将解决您的问题。