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

JavaScript如何实现按指定属性值查找数组中匹配元素的函数

问题原因分析

  • 错误1:函数内部重新声明了和参数同名的monsters变量,会覆盖传入的数组参数,导致函数无法处理外部传入的怪物列表,这部分写死的数组定义完全不需要保留。
  • 错误2:every方法的作用是检测数组所有元素是否都满足指定条件,只有全部符合才返回true,不符合你要查找单个匹配元素的需求。

正确实现代码

你可以直接用数组的find方法,它会返回第一个符合判断条件的元素,如果没有匹配项则返回undefined,你只需要在最后处理成返回null即可:

function findAMonsterByAttack(monsters) {
  const matched = monsters.find(item => item.attack === 150);
  return matched ?? null;
}

如果需要兼容旧版不支持空值合并运算符的环境,也可以这么写:

function findAMonsterByAttack(monsters) {
  const matched = monsters.find(function(item) {
    return item.attack === 150;
  });
  return matched ? matched : null;
}

手动遍历实现方案

如果你想自己手写遍历逻辑,也可以用普通for循环实现:

function findAMonsterByAttack(monsters) {
  for (let i = 0; i < monsters.length; i++) {
    if (monsters[i].attack === 150) {
      return monsters[i];
    }
  }
  return null;
}

内容的提问来源于stack exchange,提问作者nguyencuc2186

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 16:15:05