【问题标题】:How to filter an array of arrays by every nth child in d3.js?如何按 d3.js 中的每个第 n 个孩子过滤数组数组?
【发布时间】:2021-11-16 01:34:36
【问题描述】:

我正试图从我的数据中过滤出每 5 个日期并遇到麻烦。我的数据组织为

> data_2 (8) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}]  
   0: {id: 'Team1', values: Array(30)}
    id: 'Team1'  
    values: Array(30)
      0: {date: Thu Nov 03 2016 00:00:00 GMT-0400 (Eastern Daylight Time), measurement: 554}
      1: {date: Fri Nov 04 2016 00:00:00 GMT-0400 (Eastern Daylight Time), measurement: 584}
      ...

我试过了

data_2.filter(function(d,i) { return i%4 == 3 && i > 0 })

来自this post,但最终得到一个空数组。我基本上是在尝试检索每 4 个日期的数据。有什么建议吗?

编辑:修复了上面的模运算

【问题讨论】:

  • 一个数除以四时,余数永远不会是四:否则你除错了。这就是您返回的数组为空的原因。您可能想使用 i%5 == 4
  • i%3 == 3i%4 == 4 总是错误的。这在数学上是不可能的。你想要i%3 == 2 resp。 i%4 == 3
  • i0 开头,i%3 == 2258 是正确的,...。这是第三个,第六个,第九个,...元素。
  • @tnerbusas,您有一个代表团队的对象数组,每个团队都有一个子日期数组,您希望为单个团队或所有团队返回每个第 n 个日期?或者两者都不是正确的解释?
  • 您应该阅读filter。第三个参数是整个数组。

标签: javascript d3.js


【解决方案1】:

我相信你可以这样过滤:

data_2.filter((d, i) => { return (i + 1) % 5 })

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-17
    • 2012-09-04
    • 2015-02-14
    相关资源
    最近更新 更多