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
相关产品推荐
相关产品推荐

