因此,我在免费代码训练营中解决了“Finders Keepers”这一挑战,但我对我的解决方案并不满意。
问题[链接here]
要求编写一个函数,该函数接受两个参数(一个数组和一个函数),并返回数组中的第一个元素,该元素在传递给第二个参数的函数时返回 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)
}
关于JavaScript:突破回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35803089/