如何比较时间戳并仅打印一个相同的日期

时间:2019-04-29 19:32:53

标签: javascript firebase firebase-realtime-database vuejs2 nuxt.js

我将物品存储在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)
  })
},

1 个答案:

答案 0 :(得分:0)

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

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);
})