Самый быстрый / самый короткий способ проверить наличие и состояние массива - PullRequest
0 голосов
/ 18 февраля 2019

Я чувствую, что это действительно простой вопрос, но как новичок я не могу найти ответ.

В конечном итоге я хочу проверить, существует ли элемент в массиве ( например userProfile.friendRequests).

В итоге я использую includes в качестве простой проверки т.е.

checkRequest(friendReqUid) {
  return userProfile.friendRequests.includes(friendReqUid)
}

Однако иногда этот массив может даже не существовать, и единственный способ, которым я могу видетьчтобы проверить условие, нужно заранее добавить проверку для всего массива т.е.

 checkRequest(friendReq) {
   return userProfile.friendRequest && userProfile.friendRequest.includes(friendReq)
 }

Если я сделаю это в шаблоне (чтобы показать кнопку и т. д.), это закончится тем, чтодействительно длинный способ сделать это.

Есть ли более быстрая функция / способ проверить, существует ли массив и, если элемент присутствует, или нет, вместо добавления другой проверки на наличие фактического массива?

Спасибо

1 Ответ

0 голосов
/ 18 февраля 2019

Самый короткий способ сделать это, о котором я знаю, - это установить по умолчанию пустой массив, если свойство ложно:

(userProfile.friendRequests || []).includes(friendReqUid)

Но я обычно проверяю, существует ли объект, прежде чем получить доступ к массиву, поэтомуболее надежен:

(userProfile && userProfile.friendRequests || []).includes(friendReqUid)

РЕДАКТИРОВАТЬ : Если вы хотите сделать то же самое для push(), вы можете сделать это:

userProfile && (userProfile.friendRequests = userProfile.friendRequests || []).push(friendReqUid)

Это инициализируетмассив в [], если он ложный.

Однако, вы можете разбить его на отдельные строки, чтобы он был более читабельным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...