javascript - 接受数组和函数的高阶函数
问题描述
大家好,我需要名为“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 时如何使循环停止。以及如何获取该号码并将其归还。
解决方案
您需要检查并返回数组的项目和反向检查。
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
推荐阅读
- javascript - 在 ReactJs 的映射函数中调用子组件
- python-3.x - “rasa init –no-prompt”返回 NotFoundError
- python - Python NEAT 似乎没有向前几代学习
- apache-kafka - 使用 Kafka Listener 与 Kafka Consumer 获取具有指定密钥的消息
- mysql - 如何发送多个选择 sql 查询?
- javascript - [Vue 警告]:v-on 处理程序中的错误:“InvalidStateError:尝试使用不可用或不再可用的对象”
- node.js - 通过 POSTMAN 的 HTTPS 连接失败
- html - 如何在我的引导导航栏上居中徽标
- c++ - Visual Studio C++ 多项目解决方案设置
- python - 获取没有 XPath 的 WebElement 的兄弟元素 [Python/Selenium]