首页 > 解决方案 > 接受数组和函数的高阶函数

问题描述

大家好,我需要名为“find”的高阶函数的帮助,它接受两个参数——一个数组和一个函数。它将遍历数组并为数组中的每个值调用一次作为参数发送的函数。如果参数函数在循环期间的某个时刻返回“true”,则 find 函数将返回该值。

function f(n) {
  return n > 2
}

function find(array, predicate) {
  for (let i=0; i< array.length; i++) {    
    if (predicate(i) === false) {
        //do nothing
} 
return i 
    
}

console.log(find([1, 2, 3], f))
//this is supposed to log 3 as an answer

到目前为止,我得到 0 作为答案,我似乎无法弄清楚当布尔值变为 True 时如何使循环停止。以及如何获取该号码并将其归还。

标签: javascriptfunction

解决方案


您需要检查并返回数组的项目和反向检查。

function f(n) {
  return n > 2
}

function find(array, predicate) {
  for (let i = 0; i < array.length; i++) {
    if (predicate(array[i])) return array[i];
  }
}

console.log(find([1, 2, 3], f))
//this is supposed to log 3 as an answer


推荐阅读