如何修改JavaScript代码,根据匹配的id值返回对应name字段?
解决方案
直接调整代码逻辑,先找到匹配id的数组元素,再提取对应的name字段即可,完全不需要多余的flatMap步骤:
推荐写法(支持ES6+可选链)
_test.find(c => c.id === key)?.name || null
- 用
find直接遍历_test数组,定位第一个id与key相等的元素 - 可选链
?.能安全访问该元素的name属性(避免找不到元素时触发报错) - 若没有匹配元素,
find返回undefined,最终会返回null
兼容旧环境写法
如果运行环境不支持可选链,可以拆成两步实现:
const matchedItem = _test.find(c => c.id === key); matchedItem ? matchedItem.name : null
原代码里的flatMap(c => c.id)属于冗余操作——它会先把所有元素的id提取成新数组再查找,多了一次数组转换,效率远不如直接查找原数组元素。
内容的提问来源于stack exchange,提问作者ts4r
相关产品推荐
相关产品推荐

