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

JS中查找对象数组匹配指定key:value元素的实现方法

JS变量形式key访问对象属性及数组筛选实现方案

错误原因

你代码的语法错误出在属性访问的写法上:使用方括号[]通过变量访问对象属性时,不需要在方括号前加.号,你写的arr[i].[key]多了多余的.,属于语法错误。

正确实现方式

1. 基于原有for循环的修正版

function findMatches(arr, key, value) {
  const result = [];
  for (let i = 0; i < arr.length; i++) {
    // 直接用[变量]访问属性,不需要加前置的.
    if (arr[i][key] === value) {
      result.push(arr[i]);
    }
  }
  return result;
}

推荐使用严格相等===替代==,避免隐式类型转换导致的匹配异常

2. 更简洁的内置方法实现

可以直接调用JS数组内置的filter方法,自动返回所有匹配条件的元素组成的新数组,不需要手动遍历和push元素:

const findMatches = (arr, key, value) => arr.filter(item => item[key] === value)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 00:27:02