首页 > 解决方案 > 如何比较时间戳,如果它们相同则只打印一个日期

问题描述

我将项目存储在 firebase 上并成功按到期日期对它们进行排序。日期是一个时间戳(孩子过期)。

对于每种产品,我都在打印到期日期,但有些产品的到期日期相同。实际上,如果两个元素具有相同的日期,我将打印两次相同的日期。

如果两个或多个产品具有相同的日期,我如何比较每个产品的日期并仅打印一个日期?之后我希望我的物品在同一天存放

这是我的网站的一个例子:https ://nshop-b7557.firebaseapp.com/(例如mardi 21 mai)

export const actions = {
getProducts ({commit}) {fireApp.database().ref('products').orderByChild('expires').startAt(Date.now() / 1e3).once('value')
  .then(snapShot => {
    const products = []
    let item = {}
    snapShot.forEach(child => {
      item = child.val()
      item.key = child.key
      products.push(item)
    })
    commit('loadProducts', products)
  })
  .catch(error => {
    console.log(error)
  })
},

标签: javascriptfirebasefirebase-realtime-databasevuejs2nuxt.js

解决方案


如果您的代码现在正在打印产品或日期,则无。但解决方案通常是这样的:

let products = [
  { name: 'product1', date: '20190429' },
  { name: 'product2', date: '20190429' },
  { name: 'product3', date: '20190430' },
  { name: 'product4', date: '20190430' },
  { name: 'product5', date: '20190501' }
];

var last_date;
products.forEach(product => {
  if (product.date != last_date) {
    last_date = product.date;
    console.log(last_date);
  }
  console.log('  '+product.name);
})


推荐阅读