循环不会中断 javascript

Loop won't break in javascript

所以我正在尝试创建一个函数,它将向我显示第一个可被 2 整除的偶数。要除的值在数组中,另一个函数帮助我确定数组中的值是否可整除通过 2. 问题是循环不会中断,循环会一直持续到数组的最后一个值。我希望它在找到第一个可被 2 整除的数字后中断。因此,在这种情况下,一旦循环达到数组中的值 8 就应该停止,但它不会停止并一直持续到 10。我希望你能帮助我

这是我的代码:

function findElement(arr, func) {
  var num = 0;
  arr.sort();
  for(var i = arr[0]; i <= arr[arr.length-1]; i++) {
    if(func(arr[i])) {
      num = arr[i];
       break;
    }

    if(!func(arr[i])) {
      num = undefined;
    }

  }
  return num;
}

findElement([1, 3, 5, 8, 9, 10], function(num){ return num % 2 === 0; });

我相信你的 for over array 是关闭的。

而不是

for(var i = arr[0]; i <= arr[arr.length-1]; i++) {

应该是

for(var i = 0; i <= arr.length-1; i++) {

否则,您还不如验证未定义的数组索引。

请删除 arr.sort() 你的函数可以找到 请找到更新后的代码。它工作正常 运行 并检查。

function findElement(arr, func) {
  var num = 0;
 // arr.sort();
  for(var i = arr[0]; i <= arr[arr.length-1]; i++) {
    if(func(arr[i])) {
      num = arr[i];
       break;
    }

    if(!func(arr[i])) {
      num = undefined;
    }

  }
  return num;
}

console.log(findElement([1, 3, 5, 8, 9, 10], function(num){ return num % 2 === 0; }));