Hi there. Nice article! Indeed, reduce is always a better choice than more generic methods, like forEach or map/filter combinations for cases when you need to generate one single value or object. And more importantly, it improves readability of your code, as your fellow developer knows right aways what's going on.For this specific case, I have a different approach for you:
var emails = nodes.reduce(function(store, node) {
return node.followers.reduce(function(store, follower) {
follower.email && (store[follower.email] = true);
return store;
}, store);
}, {});
console.log(Object.keys(emails));
https://jsfiddle.net/epp9zwj0/6/ A bit shorter)
Alex