如何通过对象键 Vuex 获取唯一的对象数组过滤?

问题描述 投票:0回答:1

我期望获得一个新的对象数组,其中包含一个不可重复的键值 trip_class。但我仍然得到 30 个对象项,而不是一个或两个。使用计算的初始对象数组 Vuex.

来自这里:

[
    {name: 'john', trip_class: 0, lastname: 'lastname'}, 
    {name: 'Don', trip_class: 1, lastname: 'lastname'},
    {name: 'Joshua', trip_class: 1, lastname: 'lastname'},
    {name: 'Mary', trip_class: 2, lastname: 'lastname'}
]

我想得到这个:

[
    {name: 'john', trip_class: 0, lastname: 'lastname'}, 
    {name: 'Don', trip_class: 1, lastname: 'lastname'},
    {name: 'Mary', trip_class: 2, lastname: 'lastname'}
]
    computed: {
            flights() {
              return this.$store.getters.getFlights;
            },
            flightsClasses() {
              console.log(this.flights)    // returns an array of objects
              let flightsClasses = this.flights 
                flightsClasses.reduce((acc, obj)=>{
                  var exist = acc.find((flightClass) => obj.trip_class === flightClass );
                  if(!exist){
                    acc.push(obj);
                  }
                  return acc;
                },[]);

              console.log('flightsClasses',flightsClasses)    // returns repeatable items array
              return flightsClasses
            },
javascript filter vuex push reduce
1个回答
1
投票

这能解决吗?

acc.find((flightClass) => obj.trip_class === flightClass.trip_class );

© www.soinside.com 2019 - 2024. All rights reserved.