【问题标题】:filter array method not working on reduce method过滤器数组方法不适用于reduce方法
【发布时间】:2021-04-21 12:53:37
【问题描述】:

我不断收到 TypeError:countYear.filter 不是最后一行的函数,但我不明白为什么。我只想输出年份并计算(仅 2014 年)。这是原始代码的沙箱:https://codesandbox.io/s/wizardly-clarke-szge3

const table = (data, e ) =>{
    // get array of dates when bar is clicked 
    let newArr= data.datum.dimensions[0].datum.data.results.map((d) => d.Date)
    console.log(newArr)

    // convert into Date object 
    const datesArr = newArr.map(d => ({ date: new Date(d) , count : 0}))
    console.log(datesArr)


    // each year 

    const yearArr = datesArr.map((d) => ({year: d.date.getFullYear(), count: 0}))
    console.log(yearArr)
    const countYear = newArr.reduce((acc, date) => {
      const years = new Date(date).getFullYear();
      // acc = { date, count }
      if (acc[years]) {
        return {
          ...acc,
          [years]: {
            date: years,
            count: acc[years]["count"] + 1
          }
        };
      }
      return {
        ...acc,
        [years]: {
          date: years,
          count: 1
        }
      }
      
    }
    )
    countYear.filter((e) => e.includes('2014'))
  //  setYear(Object.values(countYear))
   
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.1/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.1/umd/react-dom.production.min.js"></script>

【问题讨论】:

  • 你的“reduce”不是还原成一个对象吗?
  • 我的错,我才意识到这一点。我将如何过滤对象?

标签: javascript reactjs nivo-react


【解决方案1】:

因为countYear是一个对象,而该对象没有方法过滤器。

【讨论】:

  • 嗨,你能看看我之前的问题吗?
猜你喜欢
  • 2021-12-12
  • 1970-01-01
  • 2018-11-09
  • 1970-01-01
  • 2011-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多