Open ghost opened 5 years ago
I have solve exercise 26 in another way, like this:
lists.map((genre) => { return { name: genre.name, videos: videos.filter((video) => { return video.listId == genre.id; }).map((filtredVideo) => { return { id: filtredVideo.id, title: filtredVideo.title, time: bookmarks.filter((bookmark) => { return bookmark.videoId == filtredVideo.id; }).map((filtredBookmark) => { return filtredBookmark.time; })[0], boxart: boxarts.filter((boxart) => { return boxart.videoId == filtredVideo.id; }).reduce((fBoxart1, fBoxart2) => { return fBoxart1.width * fBoxart1.height > fBoxart2.width * fBoxart2.height ? fBoxart2 : fBoxart1; }).map((filtredReducedBoxart) => { return filtredReducedBoxart.url; })[0] }; }) }; });
It's a little bit different form original code:
lists.map(function(list) { return { name: list.name, videos: videos. filter(function(video) { return video.listId === list.id; }). concatMap(function(video) { return Array.zip( bookmarks.filter(function(bookmark) { return bookmark.videoId === video.id; }), boxarts.filter(function(boxart) { return boxart.videoId === video.id; }). reduce(function(acc,curr) { return acc.width * acc.height < curr.width * curr.height ? acc : curr; }), function(bookmark, boxart) { return { id: video.id, title: video.title, time: bookmark.time, boxart: boxart.url }; }); }) }; });
So please tell me... Do my solution is good? If not, why? Maybe it's not "functional thinking"?
And I act like in the first option all time, that how I'm thinking - it's seems simpler for me.
I have solve exercise 26 in another way, like this:
It's a little bit different form original code:
So please tell me... Do my solution is good? If not, why? Maybe it's not "functional thinking"?
And I act like in the first option all time, that how I'm thinking - it's seems simpler for me.