Вы можете уменьшить это, используя map
и reduce
и некоторый оператор распространения от ES6
const points = legs.reduce((acc1, l) => {
return [...acc1, ...l.steps.reduce((acc2, s) => {
return [...acc2, ...s.path.map(p => ({lng: p.lng(), lat: p.lat()}))];
},[])];
}, [])