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

JavaScript:通过嵌套数组查找修改对象的简洁实现方案

简洁健壮的单行解决方案

嘿,这就给你安排一个既简洁又高效的单行代码方案,还兼顾了性能哦!

核心思路

  1. 先把kids.extra.hobbies里的所有id提取出来,存成一个Set(用Set的好处是查找速度快,时间复杂度O(1),比数组的includes高效太多,数据量大的时候优势明显)
  2. 遍历sports数组,对每一项扩展available属性,判断其name是否在刚才的Set里

单行实现代码

const result = sports.map(s => ({ ...s, available: new Set(kids.extra.hobbies.map(h => h.id)).has(s.name) }));

效果验证

执行后result的结构会是:

[
  { name: 'volleyball', coach: 'tom', available: false },
  { name: 'waterpolo', coach: 'jack', available: false },
  { name: 'swimming', coach: 'kate', available: false },
  { name: 'football', coach: 'sara', available: true }
]

额外说明

  • 这个方案是纯函数式的,不会修改原有的sports数组和kids对象,避免了副作用
  • 用Set替代数组查找,让代码在数据量较大时依然保持良好性能,比直接用kids.extra.hobbies.some(h => h.id === s.name)或者includes更健壮

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:26:24