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

如何在嵌套对象数组中筛选拥有指定技术的用户?

解决方案

你的代码问题在于e.technos是一个数组,直接访问e.technos.name会得到undefined,无法和目标技术名称做匹配。需要用数组方法检查技术列表中是否存在指定名称的项。

基础实现

使用Array.some()方法遍历用户的技术数组,只要有一项匹配目标名称,就将该用户保留在筛选结果中:

let filteredData = userData.filter(user => 
  user.technos.some(tech => tech.name === data.name)
);

大小写不敏感的匹配(可选)

如果需要忽略大小写的匹配,可以将两边的字符串统一转为小写(或大写)后再比较:

let targetTechName = data.name.toLowerCase();
let filteredData = userData.filter(user => 
  user.technos.some(tech => tech.name.toLowerCase() === targetTechName)
);

代码说明

  • filter():遍历用户数组,只保留满足条件的用户
  • some():遍历用户的技术数组,只要存在任意一个技术项的name与目标名称匹配,就返回true,让当前用户通过筛选

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 02:05:19