Похоже, у вас есть общее представление: Array.prototype.find
будет искать в массиве первый элемент, который при использовании в качестве аргумента обратного вызова будет иметь обратный вызов, возвращающий истинное значение.Если ничего не найдено, возвращается undefined
.
Ваш код должен работать, но да, один из способов сделать это в одной строке (если хотите) - использовать:
getExecsFromTour(tourId){
return (this.repInfo.find(el => el.id == tourId) || {}).execs || [];
}
Если Array.prototype.find
возвращает undefined
, первое внутреннее выражение в скобках будет оцениваться как пустой объект, который может попытаться (и не сможет) получить доступ к ключу .execs
без TypeError
, что также приведет к undefined
, в этом случае функция возвращает пустой массив, что и делает ваш код выше.
РЕДАКТИРОВАТЬ: Кто-то уже прокомментировал это решение, lol, но, как говорится в комментариях, нет ничего плохого в том, чтобы сохранить его многострочным (более читабельным, чтопуть).