简体   繁体   English

Javascript - 从循环返回值

[英]Javascript - return value from a loop

function findOdd(A) {
  var odd = 0;
  A.forEach(num => {
    A.forEach(num2 => {
      if (num == num2) {
        odd = odd + 1;
      };
    });

    if (odd % 2 == 1) {
      console.log("num = " + num);
      return num;
    }
    odd = 0;
  });
}

var result = findOdd([5, 0, 0, 0, 2, 2, 3, 3, 4, 4]);

console.log(result);

When I try to return num, it is returning as undefined.当我尝试返回 num 时,它返回为未定义。 And if I remove the "return" statement it is printing correctly to the console.如果我删除“return”语句,它会正确打印到控制台。

You can't break out of forEach using return and return it.你不能使用 return 来突破 forEach 并返回它。 You are not returning anything from your function as return from foreach does not get returned.您不会从 function 中返回任何内容,因为从 foreach 中返回的内容不会被返回。

You can use for loop to do this.您可以使用 for 循环来执行此操作。

 function findOdd(A) { var odd = 0; for (let i = 0; i < A.length; i++) { for (let j = 0; j < A.length; j++) { if (A[i] == A[j]) { odd = odd + 1; } } if (odd % 2 == 1) { console.log("num = " + A[i]); return A[i]; } odd = 0; } } var result = findOdd([5, 0, 0, 0, 2, 2, 3, 3, 4, 4]); console.log(result);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM