首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >过滤取取数据阵列

过滤取取数据阵列
EN

Stack Overflow用户
提问于 2019-04-09 07:21:27
回答 1查看 80关注 0票数 0

我正在从防火墙中获取数据,并尝试对其进行过滤,这样我就可以根据需要以不同的方式显示数据,数据被正确地抓取并到达,但当数据到达时,我很难过滤数据,筛选器似乎是在数据到达之前触发的。

  1. 我试着把所有的东西都包装成一个承诺(下面的代码)。
  2. 我尝试过异步/等待(下面的代码)
  3. 用硬编码的数据手动测试过滤器,所以过滤器正在工作。

承诺:

代码语言:javascript
代码运行次数:0
运行
复制
eventsToday() {
    let uid = this.$store.state.user.activeUser
    let today = '2034'

    const events = new Promise((resolve, reject) => {
      let fetchedData = getCalanderList(uid)
      resolve(fetchedData)
    })

    events.then(data => {
      console.log('Recieved data:', data.data)
      // Returns Array with 5 Objects

      let filteredData = data.data.filter(item => {
        return item.dateStamp == today
      })

      console.log('Filtered Data:', filteredData)
      // Returns Empty Array
    })

异步/等待:

代码语言:javascript
代码运行次数:0
运行
复制
async eventsToday() {
  let uid = this.$store.state.user.activeUser
  let today = '2034'

  const events = await getCalanderList(uid)
  console.log('Recieved Data', events.data)
  // Returns Array with 5 Objects

  const filteredData = await events.data.filter(item => {
    return item.dateStamp == today
  })
  console.log('Filtered Data:', filteredData)
  // Returns Empty Array 
},

events.data返回一个由5个对象组成的数组:

代码语言:javascript
代码运行次数:0
运行
复制
   [{         day: 'monday',         dateStamp: '2033'       },       {         day: 'tuesday',         dateStamp: '2034'       },       {         day: 'wednesday',         dateStamp: '2034'       },       {         day: 'thursday',         dateStamp: '2035'       },       {         day: 'friday',         dateStamp: '2035'       }]
EN

回答 1

Stack Overflow用户

发布于 2019-04-09 07:34:12

很可能您的日期等式检查失败了,您不应该像在过滤器函数中那样比较日期,您应该先将它们解析为Date对象,然后使用它们的getTime方法来比较它们,如下所示:

date1.getTime() === date2.getTime()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55587157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档