Давайте сделаем простую функцию, возвращающую сообщение с максимальным идентификатором (на самом деле это не обязательно, но сделает код немного чище):
function findMax(list: Post[]): Post | undefined {
if (!list.length) return undefined;
return list.reduce((max, post) => post.id > max.id ? post : max )
}
Теперь давайте воспользуемся pipe () для преобразования результата из http-вызов с использованием нашей функции:
getMaxPost(): Observable<Post | undefined> {
return this.http.get<Post[]>(this.apiUrl).pipe(map(findMax));
}
Если вам действительно не важен пост с максимальным идентификатором и нужен только сам максимальный идентификатор, вы можете реализовать findMaxId(list)
аналогично тому, что предложил @Harmandeep Singh Kalsi :
findMaxId(list) {
return Math.max(...list.map(post => post.id))
}