JavaScript:突破回调函数

JavaScript: breaking out of a callback function

本文关键字:函数 回调 突破 JavaScript      更新时间:2023-09-26

所以我在自由代码训练营上解决了这个挑战'Finders Keepers',但我对我的解决方案不满意。

问题 [链接在这里]

要求编写一个函数,该函数

接受两个参数,一个数组和一个函数,并返回数组中的第一个元素,该元素在传递给第二个参数的函数时返回 true。

我的解决方案:

function find(arr, func) {
  return arr.filter(function(val) {
      return func(val);
  })[0];
}
find([1, 2, 3, 4], function(num){ return num % 2 === 0; });

当然有效,但它遍历所有数组元素,只返回第一个。如果数组只有四个元素长,那很好,但如果它更长呢?

有没有办法让回调函数在返回 x 值后中断?

该问题基本上描述了Array.prototype.find()函数,因此您的代码可能是:

function find(arr, callback) {
  return arr.find(callback)
}