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

如何基于现有filteredData逻辑合并嵌套对象所有子项的details数组

实现方案

1. 修改filteredData生成逻辑,新增全量数据条目

生成filteredData时额外新增一条对应空筛选条件的记录,值为所有details合并后的结果,原有按名称存储的逻辑保留,不会影响原有正常筛选的逻辑:

filteredData = {};

// 合并所有用户的details数组,运行环境不支持flatMap可以用下方注释的reduce写法替换
const allDetails = Object.values(data).flatMap(item => item.details);
// 兼容写法:const allDetails = Object.values(data).reduce((res, curr) => res.concat(curr.details), [])

// 这里假设空筛选条件传入的值是空字符串,如果你实际的空值是null/undefined,对应修改key即可
filteredData[''] = { details: allDetails };

// 原有逻辑不变
Object.keys(data).forEach((name) => {
  filteredData[name] = data[name];
});

2. 原有调用逻辑无需调整

构造函数内的取值代码完全不用修改,也不需要传入原始data。当vis.name为空筛选条件时,自动会取到合并后的全量details数组,单名称筛选的逻辑也和之前保持一致:

vis.dataFilteredTemp = filteredData[vis.name];
vis.dataFiltered = vis.dataFilteredTemp["details"];

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 16:12:01