You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将筛选Rambo角色的JavaScript函数重构为高阶函数?

正确重构方式:使用Array.filter()

你尝试的代码问题在于:characters是一个数组,本身并没有movie属性,直接访问characters.movie会得到undefined,自然没法调用includes方法,而且也没实现遍历筛选整个数组的逻辑。

原函数的核心逻辑是遍历角色数组,筛选出movie字段包含'Rambo'的元素,用数组的高阶函数filter可以完美替代,代码更简洁:

function isRamboCharacter(characters) {
  return characters.filter(character => character.movie.includes('Rambo'));
}

逻辑说明:

  • filter方法会遍历数组中的每个元素,对每个元素执行传入的回调函数
  • 回调函数里判断当前元素的movie属性是否包含'Rambo',返回true的元素会被保留到新数组中
  • 最后filter返回的新数组就是你需要的结果,和原for循环的功能完全一致

内容的提问来源于stack exchange,提问作者palafitas.aereo-01

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 23:05:32