Estaba leyendo un artículo mediano y me encontré con este código. Devuelve el objeto con el piloto más experimentado usando .reduce() . No puedo entender la expresión (oldest.years || 0) . ¿Por qué no simplemente usar (oldest.years ) ?
var pilots = [ { id: 10, name: "Poe Dameron", years: 14, }, { id: 2, name: "Temmin 'Snap' Wexley", years: 30, }, { id: 41, name: "Tallissan Lintra", years: 16, }, { id: 99, name: "Ello Asty", years: 22, } ]; var mostExpPilot = pilots.reduce(function (oldest, pilot) { return (oldest.years || 0) > pilot.years ? oldest : pilot; }, {}); console.log(mostExpPilot);Cuando miramos la documentación de Array.reduce https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce#parameters podemos ver que esto se debe a que el código de ejemplo tiene un initialValue de {} que no tiene propiedad de years .
Igual seria:
var mostExpPilot = pilots.reduce(function (oldest, pilot) { return oldest.years > pilot.years ? oldest : pilot; }, { years: 0});