You need to enable JavaScript to run this app. Javascript/React 按值过滤数组实现筛选角色为member的成员数据
优惠活动
大模型
产品
解决方案
定价
更多

Javascript/React 按值过滤数组实现筛选角色为member的成员数据

JavaScript 过滤非member成员实现方案

首先定义你的原始数据:

const originalData = {
  "team_list": ["Bob Hill", "Jack Duncan", "John List"],
  "team_data": {
    "Bob Hill": { "role": "member" },
    "Jack Duncan": { "role": "captain" },
    "John List": { "role": "member" }
  }
};

实现逻辑

你需要同时处理team_list数组和team_data对象两部分,完整实现代码如下:

// 1. 过滤得到仅role为member的成员名单
const filteredTeamList = originalData.team_list.filter(name => {
  // 可选链写法避免成员不存在时报错,无需兼容旧环境可以去掉?
  return originalData.team_data[name]?.role === 'member';
});

// 2. 过滤team_data对象,仅保留member的条目
const filteredTeamData = Object.fromEntries(
  Object.entries(originalData.team_data).filter(([_, userInfo]) => userInfo.role === 'member')
);

// 3. 组合得到最终结果
const result = {
  team_list: filteredTeamList,
  team_data: filteredTeamData
};

兼容旧环境的替代写法

如果运行环境不支持Object.fromEntries,可以用Array.reduce实现team_data的过滤:

const filteredTeamData = Object.keys(originalData.team_data).reduce((res, name) => {
  if (originalData.team_data[name].role === 'member') {
    res[name] = originalData.team_data[name];
  }
  return res;
}, {});

最终打印result即可得到你需要的输出结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 10:21:03