VueJS сортирует / упорядочивает массив объектов по определенному свойству - PullRequest
0 голосов
/ 12 июля 2019

У меня есть массив контактных объектов со всем свойством isPrimary.Только один из них должен быть верным, но независимо от того, я бы хотел отсортировать все первичные контакты в верхней части массива.Я использую VueJS и планирую сделать это на созданном в списке компоненте.Я знаю, что могу создать вычисляемое свойство, но не уверен, как использовать сортировку, когда на самом деле не сравниваются a и b, а просто хочу переупорядочить все, что является первичным.Вот грубое начало:

sortedContacts () {
  return this.contacts.sort((a, b) => { // what to do here? })
}

Любая помощь будет принята с благодарностью!

Ответы [ 2 ]

2 голосов
/ 12 июля 2019

Используйте sort и Boolean для приведения числового типа следующим образом:

return this.contacts.sort(({ isPrimary: a }, { isPrimary: b }) => b - a);

Это работает путем сравнения числовых представлений true и false, которые являются 1 и 0 соответственно, и на основе возвращаемого значения обратного вызова sort возвращает число, определяющее место, куда должен перемещаться каждый предмет.

1 голос
/ 12 июля 2019
this.contacts.sort((a, b) => { a.isPrimary ? -1 : 1 })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...