The issue seems to be in string comparison
let intervals =
[
{ id: "1", interval_start: "0", interval_end: "40" },
{ id: "2", interval_start: "41", interval_end: "65" },
{ id: "3", interval_start: "66", interval_end: "80" },
{ id: "4", interval_start: "81", interval_end: "100" },
];
console.log(intervals.reduce((prev, current) => parseInt(prev.interval_end) < parseInt(current.interval_end) ? prev : current, {}))