如何通过键值对在JavaScript嵌套对象数组中查找目标对象(单行无循环)
问题解决:查找数组中指定键值对的对象
原代码的问题
你写的代码存在三个语法/逻辑错误:
- 引号不匹配:
`sushi'混用了反引号和单引号,直接导致语法报错 - 选错数组方法:
map的作用是转换数组元素并返回新数组,不是用来查找单个元素的,最终会返回包含符合条件元素的数组而非单个对象 - 箭头函数语法错误:箭头函数如果包含
if这类语句块,必须用{}包裹并显式写return,但这种写法完全没必要,属于冗余代码
正确实现方案
要实现单行代码查找food_name为sushi的对象,应该使用Array.prototype.find()方法——这是JS数组专门用于查找第一个符合条件元素的方法:
const tonights_dinner = this_menu.find(x => x.food_name === 'sushi');
说明
find()会遍历数组,当回调函数返回true时,立即返回当前遍历到的元素,正好匹配你获取单个目标对象的需求- 箭头函数使用简洁体,直接返回条件判断结果(
x.food_name === 'sushi'会返回布尔值),无需额外的{}和return - 统一使用单引号(或双引号、反引号),避免引号匹配错误
内容的提问来源于stack exchange,提问作者gwydion93
相关产品推荐
相关产品推荐

