【问题标题】:Vue remove duplicate values after sort functionVue排序功能后删除重复值
【发布时间】:2020-06-25 20:03:35
【问题描述】:

查看

<div v-for="todo in sortedArray">
  <b-button block pill variant="outline-info" id="fetchButtonGap" v-model:value="todo.items[0].arrivalTime">
     {{fromMilTime(todo.items[0].arrivalTime)}}
  </b-button>
</div>

脚本

sortedArray: function() {
      function compare(a, b) {
        var standardTimeA = moment(a.items[0].arrivalTime, "HHmm").format("HH:mm A");
        var standardTimeB = moment(b.items[0].arrivalTime, "HHmm").format("HH:mm A");

        if(standardTimeA = standardTimeB){
          let unique = [...new Set(standardTimeA,standardTimeB)];
        }
        
        if (standardTimeA < standardTimeB)
          return -1;
        if (standardTimeA > standardTimeB)
          return 1;
        return -1;

        }
      return this.allbookings.sort(compare);
    }

fromMilTime: function(todo){
      var militarytime = todo;
      var standardTimeB = moment(militarytime, "HHmm").format("hh:mm A");
      return standardTimeB;
    },

现在,如果 items.arrivalTime 包含多个时间,例如 11:00 AM 、 12:00 PM 、 09:00 AM 和 11:00 AM。首先,它使用sortedArray() 将时间排序为 09:00 AM、11:00 AM、11:00 AM 和 12:00 PM。

有没有办法在sortedArray() 函数之后删除重复值?应该是上午 09:00、上午 11:00 和下午 12:00。

【问题讨论】:

  • 1.考虑将sortedArray 放在计算属性中。 2. 除非你有非常好的理由,否则不要使用var。 3.考虑使用dayjsnpm。它要小得多,而且做同样的事情。 4. 在您​​的if 块中,您使用的是单个=。应该是=====

标签: javascript vue.js momentjs


【解决方案1】:

您可以使用以下任一方法从已排序的数组中删除重复项。

items.arrivalTime = items.arrivalTime.filter((item, index) => items.arrivalTime.indexOf(item) === index)

items.arrivalTime = [...new Set(items.arrivalTime)]

【讨论】:

    猜你喜欢
    • 2016-05-24
    • 2021-01-07
    • 2020-09-14
    • 1970-01-01
    • 2020-06-07
    • 1970-01-01
    • 1970-01-01
    • 2012-07-16
    • 2016-11-19
    相关资源
    最近更新 更多