Filter, Map, Reduce, CompactMap, FlatMap - Swift - iOS Dev Interview Questions
ฝัง
- เผยแพร่เมื่อ 22 ก.ค. 2024
- Go to squarespace.com/seanallen to save 10% off your first purchase of a website or domain using code SEANALLEN.
Explaining Filter, Map and Reduce in Swift is a very common iOS Dev interview question. In this tutorial I'll walk you through how Filter, Map and Reduce work and how to chain them together for more complex examples. I also show you how compact map and flat map work.
This tutorial was created using Xcode 14 and iOS 16.
iOS Developer Interview Questions Playlist:
• Swift Interview Tips
My iOS Dev Courses:
seanallen.teachable.com/
My Closures Video:
• Swift Closures Explained
Twitter:
Sean Allen - / seanallen_dev
Hired.com:
hired.com/x/1n01g
Book and learning recommendations that help out the channel if you decide to purchase (Affiliate Links):
Paul Hudson's Hacking With Swift:
gumroad.com/a/762098803
Donny Wals - Combine:
gumroad.com/a/909014131
Mark Moeyken’s SwiftUI Books:
www.bigmountainstudio.com/swiftui-views-book/fzc51
Objc.io Books (Thinking in SwiftUI & Advanced Swift):
gumroad.com/a/656585843
#swift #softwaredeveloper #iosdeveloper
Timestamps:
0:00 - Filter, Map, Reduce
0:45 - Filter
3:02 - Map
4:35 - Reduce (simple)
6:05 - Reduce (on property)
7:17 - Chaining
10:18 - Compact Map
11:21 - Flat Map - วิทยาศาสตร์และเทคโนโลยี
The way you explained trailing closures in this made something finally click in my brain! I have no idea how it was able to confuse me for so long - it’s just so simple. Thank you!
I remember that feeling! Happy to help.
Finally this video clicked for me... Simple examples makes you understand... i have watched 3 other videos across TH-cam to understand high order functions but they had stupid azz examples i couldn't understand a freking thing...
Glad it finally clicked!
Never knew about a reduce, just learned it today. Thanks, sean. I've been doing it the hard way all this time.
Thank you so much for putting this together! Especially for map and reduce!
Excellent explanation, as usual. Thank you!
You can use keypaths with these high level functions. Makes for great readability!
Cool video. Learned some new things today. Thank you!
Big Love Sean, THANK YOU, you and Afraz are the best
Thanks
Thanks for the shares. You have many followers from Turkey. Even though I watch with automatic subtitles, I learn a lot.
Great job Sean, before this I really got stuck which one is
Great explanations for these
smart explanation, clear language! very efficient.. very.. ! 👏🏻
Amazing !
Thanks.
Happy to help!
Great explanations, really appreciate it.
A few reactions if you're open to such things:
1. Using Double for currency values will work 99.99% of the time. It's that .01% that will drive you crazy.
2. I wouldn't use the for loop as a tool to explain filter/map/reduce. Your original explanation is great and more than sufficient. Adding discussion of the for loop way of calculating will confuse a certain percent of viewers, and slow down almost everyone.
I disagree. He’s right in bringing up the for loop for comparisons, since that is the whole point on declarative programming: streamline the uglier, more verbose imperative style
Thanks Sean!!
Thanks!)
You are amazing!
I appreciate the kind words :)
Amazing you are the best,Thanks for being one of the best is swift 👍
Thanks for the kind words, Ahmed.
How about Zip? How does it work and when is useful?
cool vid, but I believe that $0 and $1 when reducing does not refer to "this and next iteration", but to "current result and current iteration" - isn't that right? :) because here you keep handling constantly "accumulating current result" with each collection's element.
Yes that is how I understood reduce, even in other languages. It would accumulate - add the first and second, then add the third to that value. I think of $0 meaning lhs (left hand side) and $1 rhs
@@Jacob-rm7vo exactly. Filter iterates through the array, doing this:
sumSoFar += object.numberToAdd
So $0 is the lhs, and $1 is the object on the rhs. This is why Sean needs to write $1.users and not $0.users. $0 is an Int already.
Awesome 🎉
Is there any plan for portfolio review? I’d love to hear your opinion about my website.
Thank you in advance 😊
nice
69th like
thank you!