In terms of real world usage, unless you have multiple thousands of objects in your array it is not going to matter which approach you use. This method is for developer convenience.
behind the scene movies.reduce((groupBY, item) => { if(!groupBY[item.series]) groupBY[item.series] = []; groupBY[item.series].push(item) return groupBY }, {}) I don't understand the purpose of adding things without some benefit... nothing less code is written... who does not understand reduce, will not understand this either
If all you are doing is what you did in that reduce statement, then with the new groupBy you could reduce all the code into this one line: Object.groupBy(movies, ({series})=>series); which I would argue is much easier to read and understand than the reduce method. I've been teaching Array.reduce to students for years and they frequently struggle with the syntax. The more complex the situation, the more options that you are adding, the longer the code becomes, regardless of which option you pick.
Congratulations on 100K subscribers,
and thanks a lot for sharing your knowledge and expertise
100k! It was a long journey but very well deserved. Congratulations!
I always enjoy your videos, cheers on those 100K!
Welcome back! Just noticed your new videos. Yes!
I always enjoy your videos, something new I learned today, thanks Steve
Thank you professor for the great video
very helpful details
thanks for your great videos
GroupBy Method starts at 5:50
Finally Steve is back!
Great video, Thank you
Is there a way of using this function to do a 2-level nested grouped Map/Object, if one were to provide a pair of keys, e.g. { key, sub-key }
It really depends on what you are trying to do. You might want to use reduce or flatMap
great ! can we also sort this based on no. of items in series instead of random order (length of keys : []) ?
You can group by length of keys yes. There is no sorting in an object. The order in an object is based on the order that the keys were added.
It would be nice to add performance comparison section to the video.
In terms of real world usage, unless you have multiple thousands of objects in your array it is not going to matter which approach you use. This method is for developer convenience.
Hello Sir, can you please make videos on node js background processes, how the cores come into play?
You can post tutorial requests here - ruclips.net/video/LCezax2uN3c/видео.html
why is this in object and not in array?.
It returns an Object not an array. The Map object also has a groupBy method if the keys are not strings or symbols.
@@SteveGriffith-Prof3ssorSt3v3 so does reduce, this clearly a collection processing functionality, this belongs in array, this bad design.
Lipstick on a pig (map method)? But it looks useful, thanks Steve.
It doesn't return an array, so closer to the reduce method
behind the scene
movies.reduce((groupBY, item) => {
if(!groupBY[item.series]) groupBY[item.series] = [];
groupBY[item.series].push(item)
return groupBY
}, {})
I don't understand the purpose of adding things without some benefit...
nothing less code is written...
who does not understand reduce, will not understand this either
If all you are doing is what you did in that reduce statement, then with the new groupBy you could reduce all the code into this one line:
Object.groupBy(movies, ({series})=>series);
which I would argue is much easier to read and understand than the reduce method. I've been teaching Array.reduce to students for years and they frequently struggle with the syntax.
The more complex the situation, the more options that you are adding, the longer the code becomes, regardless of which option you pick.
You don't see the benefit of writing less code vs. more code? Wow. Where do you work, so we can all know not to apply?