d3.js中如何筛选嵌套数组内的每第n个日期数据?
实现方案
问题原因
你当前的写法直接对data_2数组执行过滤操作,data_2的元素是各个团队的聚合数据,过滤时的索引i对应的是不同团队的下标,而非你需要筛选的日期条目下标,因此无法得到预期结果。
可用实现代码
场景1:保留团队维度结构,每个团队单独筛选自身的每第4个日期数据
const filteredResult = data_2.map(teamItem => { // 若日期未按顺序排列,可先执行排序再筛选: // const sortedValues = [...teamItem.values].sort((a, b) => a.date.getTime() - b.date.getTime()) return { ...teamItem, // 索引从0开始,i%4===3对应第4、8、12...个条目,可根据需求调整模运算结果 values: teamItem.values.filter((dateItem, index) => index % 4 === 3) } })
场景2:拉平所有团队的日期条目,全局筛选每第4个日期数据
const allFilteredDates = data_2 // 把所有团队的日期数组合并为一维数组 .flatMap(teamItem => teamItem.values) // 可先添加排序逻辑再筛选 .filter((dateItem, index) => index % 4 === 3)
内容的提问来源于stack exchange,提问作者tnerbusas
相关产品推荐
相关产品推荐

