Как сопоставить результаты в вычисляемом свойстве vue

Наше приложение имеет несколько местоположений, каждое из которых имеет группу доступа a, b, c или d. У наших пользователей есть массив групп доступа ['a', 'c'] и т.д.

На нашей странице местоположений myLocations должны возвращать местоположения, где location.accessGroup включен в их массив accessGroup.

computed: {
  ...mapState(['currentUser', 'locations', 'userProfile']),
}
myLocations: function() {
    return this.locations.filter((location) => {
      return location.accessGroup === this.userProfile.accessGroup
    })
  },

person Greg Fielding    schedule 28.01.2019    source источник


Ответы (1)


Похоже, вы сравниваете строку с массивом. Попробуй это:

// assuming userProfile.accessGroup is an array of strings like ['a', 'c'] etc
// and location.accessGroup is a string: 'a', 'b', 'c', or 'd'
myLocations () {
  return this.locations.filter((location) => {
    return this.userProfile.accessGroup.indexOf(location.accessGroup) >= 0
  })
}
person gvk    schedule 28.01.2019