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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 15:18:01