Сопоставить объект с массивом для сортировки в vuejs - PullRequest
0 голосов
/ 02 сентября 2018

Я создаю приложение чата SPA с примерно 3000 комнатами. Домашняя страница оценивает каждую комнату в зависимости от количества активных участников.

Для этого я использую Laravel, Vuejs, Laravel Echo и Socket.io.

Я создал простую версию своего приложения, чтобы понять мою кодовую базу: https://jsfiddle.net/benjifisher/3cotxu29/

По сути, я использую конечную точку HTTP API Laravel Echo Server *1009* для извлечения данных канала. Я отображаю список каналов для каждой комнаты.

Мне нужен совет о том, как сортировать комнаты по значению количества подписок. Я так понимаю, мне нужно сопоставить объекты с массивом и потенциально выдвинуть новый массив?

Ниже приведен фрагмент

new Vue({
  el: "#app",

  data: {
    rooms: [
      { id: 1, name: "Room 1", url: 'room1'},
      { id: 2, name: "Room 2", url: 'room2' },
      { id: 3, name: "Room 3", url: 'room3' },
      { id: 4, name: "Room 4", url: 'room4' },
      { id: 5, name: "Room 5", url: 'room5'},
      { id: 6, name: "Room 6", url: 'room6' },
      { id: 7, name: "Room 7", url: 'room7' },
      { id: 8, name: "Room 8", url: 'room8' }
    ],
    channels: {
            channels: {
        presence_room4: {
            occupied: true,
          subscription_count: 2,
        },
        presence_room5: {
            occupied: true,
          subscription_count: 1,
        }
        }
    }

  },
  computed: { 

  },
  methods: {

  }
})

Заранее спасибо.

Ben

1 Ответ

0 голосов
/ 03 сентября 2018

Пожалуйста, проверьте https://jsfiddle.net/Mark_f/vynqmtb2/ для обновленного кода.

Что я обновил в ваших кодах:

  1. Рассчитать и отсортировать room_channel_array карты между комнатами и каналами в методе просмотра
  2. Представить номера с отсортированными room_channel_array

Вы можете использовать некоторые сторонние библиотеки, такие как lodash , чтобы сделать вашу жизнь проще.

...