我期望获得一个新的对象数组,其中包含一个不可重复的键值 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
},
这能解决吗?
acc.find((flightClass) => obj.trip_class === flightClass.trip_class );