Learn JavaScript Array Reduce In 10 Minutes

แชร์
ฝัง
  • เผยแพร่เมื่อ 11 ม.ค. 2025

ความคิดเห็น • 385

  • @rosseaton990
    @rosseaton990 2 ปีที่แล้ว +68

    This was the most simple and straight forward example of reduce I've seen. Thank you!

  • @Vibestr
    @Vibestr 2 ปีที่แล้ว +12

    Another good reason to set the second parameter on the reduce is if you are totaling price on an object (like in your example) and you didn't set this parameter to 0, then total would represent the object (the first item in the array) and your code would error out. Thank you for this video Kyle.

  • @kelseymovies
    @kelseymovies 2 ปีที่แล้ว +6

    Thank you for this! I just took a whole course about it and got even more confused. Your video broke it down to a point where it clicks.

  • @ademlayes9116
    @ademlayes9116 ปีที่แล้ว

    I've watched this video twice, once before ~5 months and now after forgetting what "reduce" does... and im so thankful every time! Thank you!

  • @MrGodman1981
    @MrGodman1981 3 ปีที่แล้ว +33

    Last week I was struggling with aggregate of object attributes in an array of objects due to the missing intiial value of 0 and I learned it the hard way. Also I had the groupby use case well. Thanks for simplying groupBy.

  • @JamesJon1187
    @JamesJon1187 2 ปีที่แล้ว +1

    4:12

  • @johnjoyce
    @johnjoyce 3 ปีที่แล้ว

    best explanation of reduce in javascript that i have ever seen. be cautious saying amunnuh when you mean “I’m going to”. that can be difficult for non native listeners

  • @_boza
    @_boza 2 ปีที่แล้ว +1

    I think you said the best definition of reduce ever. "Reduce, all it does. It takes array of values whatever that is and reduces it down to one single value"

  • @elie8181
    @elie8181 3 ปีที่แล้ว +3

    very good explanation of the reduce method, it is clear and simple.
    I'm a french developper in training and I understood everything, thank you and good continuation for your TH-cam channel

  • @alirezashahmoradi7648
    @alirezashahmoradi7648 2 ปีที่แล้ว +4

    I cant believe how you made it that simple. Thank you!!

  • @NaroTaro
    @NaroTaro 2 ปีที่แล้ว

    I've been stuck on understanding reduce for 2 days now. This video cleared everything up. Thanks!

  • @encapsule2220
    @encapsule2220 2 ปีที่แล้ว

    best explanation. my scalp is starting to regrow hair follicles thanks to u

  • @InsertYourself1
    @InsertYourself1 ปีที่แล้ว +2

    10 minutes of this is so much better than 1,000 hours of understanding the docs

  • @TheDanthelion
    @TheDanthelion ปีที่แล้ว

    While I understood how reduce worked, I didn't quite get why I kept hearing how powerful it was - your object example made it very clear in a short amount of time!

  • @loumeroj
    @loumeroj 3 ปีที่แล้ว

    I'm at least watching the ads cause this guy explained reduce briefly and concisely :) and nice hair btw

  • @Rift_131
    @Rift_131 2 ปีที่แล้ว

    Man, you helped me solve a problem that's been kicking my butt for a LONG time. THANK YOU!

  • @Sun-gk8fc
    @Sun-gk8fc ปีที่แล้ว

    7 the video on reduce in the last 40 mins and this is as simple as you can get...superb. A like and a subscribe from me.

  • @donotlook6048
    @donotlook6048 3 ปีที่แล้ว

    This guy really uploaded this video 2 weeks ago and today I needed to use reduce and didn't know it worked, now i do thanks man. Whenever I need to understand something new I just type the concept + webdevsimplified and watch ur video lol

  • @vinicius2336SP
    @vinicius2336SP 2 ปีที่แล้ว +1

    Dude... you're amazing! Thanks a lot! You're so much better than my teacher LOL
    Thanks for your content! I'll be buying your course soon. :)
    Have a nice day!

  • @dasten123
    @dasten123 3 ปีที่แล้ว +19

    I like the reduce function. But many people use it on occasions where a simple `forEach` loop would be more appropriate, and that gives the `reduce` a bad reputation, because it seems to make things unnecessarily complicated. I think you should always be aware of that whenever you are about to use it.

  • @freudinsky
    @freudinsky ปีที่แล้ว

    LOL - after googling for HOURS(!!!) I finally got it - after just 3min into this video. Damn good explanation! Thank you sooo fkn much!!!

  • @scratchercatcher6760
    @scratchercatcher6760 3 ปีที่แล้ว

    Thank you VERY MUCH! All CLEAR NOW FOR ME and you made video without any extra "bloggers show off". My like to you and subscription.

  • @iooosef6006
    @iooosef6006 3 ปีที่แล้ว +18

    I'm looking forward for more videos about array, string, and object methods.
    Your explanations are so great.

  • @darklord8684
    @darklord8684 2 ปีที่แล้ว +1

    after your explanation this is my fav method

  • @kunalmaloo8806
    @kunalmaloo8806 9 หลายเดือนก่อน

    best explaination i used for loop each time but now onwards i am shifting to reduce

  • @pugazhonline
    @pugazhonline 3 ปีที่แล้ว +1

    I have used reduce() many times. but clearly understand now. Thanks Kyle.

  • @pcchamikara
    @pcchamikara 2 ปีที่แล้ว

    you REDUCED my effort of understanding the "reduce" function. 👌

  • @nabilelidrissi8541
    @nabilelidrissi8541 ปีที่แล้ว

    I've watched a fair few videos on reduce, but you have explained this wayyyy better.

  • @rafaXD05
    @rafaXD05 3 ปีที่แล้ว

    I was looking for resources to learn about `reduce` method. Your video came in as a rescue Kyle.. 😍
    You are a saviour!!

  • @vivekmodi3165
    @vivekmodi3165 ปีที่แล้ว

    The concept of reduce method is very well explained because it was difficult to understand the concept of this in the documentation.
    Thanks.

  • @mayowasunusi9161
    @mayowasunusi9161 ปีที่แล้ว

    Thank you Kyle, I saw .reduce in a TS tutorial, i had no idea how to do it, your video was straightforward

  • @jollyjoker6340
    @jollyjoker6340 ปีที่แล้ว

    6:57 Took me a while to make this work; you can write this as
    const toArray = (arr, elem) => arr ? [...arr, elem] : [elem]
    const grouper = (grouped, { age, name }) => ({...grouped, [age]: toArray(grouped[age], name)})
    console.log(people.reduce(grouper, {}))
    assuming you want a list of names instead of the full objects, as specced at 5:49. At least destructuring the age and name is clear enough; some of the syntax may be a bit obscure.

  • @munaq-jp
    @munaq-jp 3 ปีที่แล้ว +14

    I love the _reduce_ method. I use it for everything. I would brush my teeth with it if I could. If you ever _map-filter-map-find_ anything, do everyone a solid and just use _reduce._

  • @SquaredIndex
    @SquaredIndex 2 ปีที่แล้ว +4

    Good explanation Kyle!
    I think the second example should use undefined rather than null, then you can use strictly equals like so:
    if (groupedPeople[age] === undefined) groupedPeople[age] = []

    • @caterpilar
      @caterpilar ปีที่แล้ว +1

      you can go even further using `.hasOwnProperty()` to check object key

    • @jollyjoker6340
      @jollyjoker6340 ปีที่แล้ว

      null and undefined are falsy so if(groupedPeople[age]) is enough

  • @beepybeepy4903
    @beepybeepy4903 ปีที่แล้ว

    Thank you so much! This is so much clearer than other tutorails using acc, cur….

  • @tanvirhasanmonir1627
    @tanvirhasanmonir1627 2 ปีที่แล้ว

    Thanks Kyle for your simplified explanation with useful example

  • @SiddhantaPaul80
    @SiddhantaPaul80 2 ปีที่แล้ว

    That's an impressive straight forward explanation!
    Really liked the analogy with forEach Loop.

  • @The1stKing
    @The1stKing 3 ปีที่แล้ว +1

    Haha, just what i needed. 😆 I literally just youtube-ed how to use reduce function.

  • @odilanmaevidence9545
    @odilanmaevidence9545 2 ปีที่แล้ว

    All i gotta say is Thank you mate, you're awesome!

  • @simple8810
    @simple8810 3 ปีที่แล้ว

    reduce is like different and complex from other array methods,but you made clear that for us thanks

  • @mr__info___
    @mr__info___ 2 ปีที่แล้ว

    You truly simplify the web. thank you!

  • @filipcza2
    @filipcza2 ปีที่แล้ว

    Thanks man! Been hating the tasks which force you to use reduce so far.. feels like you randomly try until it somehow works. I really don't get why this feels so awkward to use or understand but your examples were extremely clear and helpful. Perhaps now I can stop dreading the reduce method. 😅

  • @re.liable
    @re.liable 2 ปีที่แล้ว

    I feel lucky that I was able to intuitively understand reduce for the most part. Except that second parameter. That tripped me up hard quite a bit.

  • @shvideo1
    @shvideo1 2 ปีที่แล้ว

    Perfect content coverage on reduce. You are amazing! Thank you for sharing.

  • @princecharles-amachree7329
    @princecharles-amachree7329 3 ปีที่แล้ว +1

    Was legit looking for this today and my man ends up making a video on it. Coincidence? I think not

  • @Unknown-so7qv
    @Unknown-so7qv 2 ปีที่แล้ว

    Nice video bro, i finally have understood how to filter objects by a key with reduce thx man .

  • @johnadriandodge
    @johnadriandodge ปีที่แล้ว

    Shalom Mr. K, outstanding explanation!
    Thank you
    Shalom

  • @mattplaygamez
    @mattplaygamez 3 ปีที่แล้ว +2

    You deserve more subscribers

  • @EdisonSeas
    @EdisonSeas ปีที่แล้ว

    Very well explained, crystal clear. Thanks for this content!

  • @snansahmarov1524
    @snansahmarov1524 3 ปีที่แล้ว +2

    Thank you Kyle. You are great !

  • @MrLiquitorleaveit
    @MrLiquitorleaveit 3 ปีที่แล้ว +2

    Incredibly well explained! Thanks so much! 🙏

  • @eugene4296
    @eugene4296 10 หลายเดือนก่อน

    This is amazing, and really helpful. I have immediately subscribed. And I think I love you sir. :)

  • @SmokingSheep98
    @SmokingSheep98 3 ปีที่แล้ว

    I appreciate how you show multiple use cases instead of just the most simple one. Keep up the amazing videos!

  • @galihhad
    @galihhad ปีที่แล้ว

    Thank you, I understand it much better now!

  • @lyrichives7859
    @lyrichives7859 ปีที่แล้ว

    7:12 don't the groupedPeople[age] shows the value present in groupedPeople array at indext position age? So how does it make sense??

  • @themanshaper
    @themanshaper 2 ปีที่แล้ว

    Dude your explanations are so good. Thank you!

  • @ngyang5113
    @ngyang5113 3 ปีที่แล้ว

    u are amazing, all ur video is concise and easy to understand

  • @joelcool1027
    @joelcool1027 3 ปีที่แล้ว

    Thanks bro. I'm a JavaScript developer and never understood this function. You truly "simplified" it

  • @cfhall54
    @cfhall54 2 ปีที่แล้ว

    Much appreciated! This can definitely be a time saver

  • @YannMetalhead
    @YannMetalhead 2 ปีที่แล้ว +1

    Simple and direct, great explanation.

  • @andzisimabaso5622
    @andzisimabaso5622 3 ปีที่แล้ว

    This is just awesome! Finally, I get it.

  • @AbhishekKumar-cd4gg
    @AbhishekKumar-cd4gg 4 หลายเดือนก่อน

    loved the seccond example , love from india .

  • @avi12
    @avi12 3 ปีที่แล้ว +81

    The reduce method is a double-edged sword, as explained by a Google Developers video: th-cam.com/video/qaGjS7-qWzg/w-d-xo.html
    On the one hand, the reduce method is handy
    On the other hand, it might reduce the readability (see the pun?)

    • @parahumanoid
      @parahumanoid 3 ปีที่แล้ว +3

      I wonder if we should name the object "vague" and the parameter -- "readability":
      const x = vague.reduce((overall, readability)=>{ ....}, 0)

  • @mquanit
    @mquanit 3 ปีที่แล้ว +1

    finally, today is the day when I succesfully understood this reduce function. Thanks alot

  • @davidasteed
    @davidasteed 2 ปีที่แล้ว

    excellent last bit about "make sure to give reduce() a default starting accumulator value, else your code will fail if given an empty array"
    however: what is the rationale using "==" operator, vs. strict equality "===" ?: that is standard practice in nearly 100% of operational JS code I've worked on

  • @Kae201
    @Kae201 2 ปีที่แล้ว

    This video was really helpful and clear. Thank you!

  • @codingwithkenny6492
    @codingwithkenny6492 3 ปีที่แล้ว +6

    You are awesome, Kyle! Your videos have helped me learn so much about Javascript👍

  • @hayfachouchene1285
    @hayfachouchene1285 2 ปีที่แล้ว

    amazing explanation ! good job

  • @tomgu1809
    @tomgu1809 2 ปีที่แล้ว

    reduce doesn't only apply for total, total from your addition statement. If you change + to -. it will deduct from initial value by each item .

  • @elkhanhamet2561
    @elkhanhamet2561 2 ปีที่แล้ว

    Amazing explanation. Thank you Kyle!!!🙂

  • @xiampiii
    @xiampiii ปีที่แล้ว

    Thank you for a great and easy to understand explanation

  • @stylesg7818
    @stylesg7818 3 ปีที่แล้ว

    Thank you so much! It's make so much sense now.

  • @tijanisylla1348
    @tijanisylla1348 3 ปีที่แล้ว

    Im always learning from Kyle ! This is an amazing !!!!

  • @travel2react567
    @travel2react567 2 ปีที่แล้ว

    Thanks a lot for such a detailed video.

  • @soniablanche5672
    @soniablanche5672 3 ปีที่แล้ว +1

    The reason why you receive the array as 4th parameter is because the callback function might be inside another file or might or be outside the scope of the array, so you can't reference it in any way. AFAIK all array methods have a callback function that pass the array as an argument.

    • @maelstrom57
      @maelstrom57 3 ปีที่แล้ว

      that's exactly right

  • @dr__ey
    @dr__ey 2 ปีที่แล้ว

    thanks so much for this explanation!!! it really helped

  • @musaamuhsen
    @musaamuhsen 3 ปีที่แล้ว

    Dude this just saved me. Thanks!

  • @ts.wizard
    @ts.wizard 3 ปีที่แล้ว

    Thanks a ton for demonstrating the advanced features as well and the consequence of leaving the default parameter empty. That's not something everyone out here does.

  • @Ranjithkumar-ll5rb
    @Ranjithkumar-ll5rb 2 ปีที่แล้ว

    you are my life saver! Thank you🙏

  • @shahhuzaifa2746
    @shahhuzaifa2746 3 ปีที่แล้ว

    Thank you so much. I saw many videos on YT of reducing the items to a single value (easy one), but NO one explained about the grouping items into categories. This literally save so much processing power. I was using two loops of approx 1000 items and approx 100 items each to categorize. But this reduce method of categorizing is so much efficient. Thanks for explaining the concept :)

  • @Zen-lz1hc
    @Zen-lz1hc 2 ปีที่แล้ว

    LIKE :)
    Thank you for publishing this video.
    Really clear and friendly introduction to reduce() method!

  • @Raubritterr222
    @Raubritterr222 3 ปีที่แล้ว +2

    Kyle, I love your videos! You are a great teacher and a superb developer!

  • @MonsterlessonsAcademy
    @MonsterlessonsAcademy 3 ปีที่แล้ว +7

    The easiest explanation of reduce is that it's a same low level function as "for loop" but in completely functional way. It's safe, returns result, code is declarative and immutable and you can build other functions like filter, map,etc with it.

    • @proactivex
      @proactivex 3 ปีที่แล้ว +3

      Typical engineer who has lost touch with what an easy explanation is.

    • @kirillvoloshin2065
      @kirillvoloshin2065 3 ปีที่แล้ว

      @@proactivex well, I find this explanation pretty clear and straight to the point. maybe because I am too 😏

    • @proactivex
      @proactivex 3 ปีที่แล้ว +3

      @@kirillvoloshin2065 “a completely functional way “ that’s nuanced AF. “Safe” noobs don’t know what safe is vs not safe. Not knowing when you’re in danger is kind of the essence of noobness. “Declarative and immutable” by the time you have a good grasp on all those terms you don’t need a video explaining reduce. Back to my point that engineers often forget how to explain things to people several levels below them.

    • @MonsterlessonsAcademy
      @MonsterlessonsAcademy 3 ปีที่แล้ว

      @@proactivex Sorry but from my perspective reduce is not something that you learn in your first 2 weeks of programming. This is why "easy explanation" is not for people who just started. It's for people with background which want to learn reduce. You should for sure understand the difference between imperative and declarative programming as well as functional vs oop approaches.

    • @MonsterlessonsAcademy
      @MonsterlessonsAcademy 3 ปีที่แล้ว

      @Anmol Pandey it's the opposite. reduce is declarative programming and for loop imperative.
      Imperative programming consists of a series of commands which do something and it focuses on describing each command.
      Declarative programming consists of expressions and not commands. We describe what needs to be done but not the each step of how it should be done.

  • @VenkateshMogili
    @VenkateshMogili 3 ปีที่แล้ว

    Thank you kyle, got more clarity on Reduce method now❤😊😊👍

  • @samichpower
    @samichpower ปีที่แล้ว

    Your hair is always on point 🔥

  • @meysamrezania54
    @meysamrezania54 3 ปีที่แล้ว

    That was pretty cool explanation

  • @dryujin1004
    @dryujin1004 2 ปีที่แล้ว

    how can i delete the data,
    when using Reduce.
    for example, if you look at the 6:42 at the video,
    i wanna delete sally, and jill because they are same age.

  • @fatimazboujrar
    @fatimazboujrar ปีที่แล้ว

    thank you so much , you've covered everything 🤩

  • @johnwellgroup
    @johnwellgroup ปีที่แล้ว

    Thank you very muh for really breaking this topi. you are the best

  • @ardinhelios5677
    @ardinhelios5677 3 ปีที่แล้ว +3

    Please make more of these byte sized vides (pun intended) just like Kevin Powell does for CSS

  • @MiSt3300
    @MiSt3300 2 ปีที่แล้ว

    This is a perfect explanation, thank you!

  • @hathumkittitus9663
    @hathumkittitus9663 3 ปีที่แล้ว

    Thanks, I never set seccond parameter but from now I will alway set it 😍🥰

  • @abhishekghimire3539
    @abhishekghimire3539 3 ปีที่แล้ว +1

    Thanks kyle! Can't get more simple than this

  • @dhawalparmar7117
    @dhawalparmar7117 3 ปีที่แล้ว +1

    Time worthy video 😍

  • @VladHorbachenko
    @VladHorbachenko 2 ปีที่แล้ว +1

    Hi, I'm kinda new and I don't get the second example. Why does he do groupedPeople[age]? Why there are square brackets? it is not an array, it's an object but he treats it like an array. I think I'm missing something here...

  • @chandrachurmukherjeejucse5816
    @chandrachurmukherjeejucse5816 2 ปีที่แล้ว

    As always a great lecture. Thanks a lot

  • @pawandabi6367
    @pawandabi6367 3 ปีที่แล้ว

    Good explanation
    Keep posting 💥

  • @AlThePal78
    @AlThePal78 3 ปีที่แล้ว +2

    this is literally the best reduce video i ever seen :) I love how you make it so easy :)

    • @allenjr4978
      @allenjr4978 3 ปีที่แล้ว

      Can u help me out bro?
      Wat happens when groupedpeople[age]

    • @AlThePal78
      @AlThePal78 3 ปีที่แล้ว

      @@allenjr4978 try it

    • @allenjr4978
      @allenjr4978 3 ปีที่แล้ว

      @@AlThePal78 bro I cant understand what happens when we declare groupedpeople[age]

    • @AlThePal78
      @AlThePal78 3 ปีที่แล้ว +1

      @@allenjr4978 when I get home I will help you im at work

    • @AlThePal78
      @AlThePal78 3 ปีที่แล้ว

      So what is up you still there?

  • @bartoszsowa5140
    @bartoszsowa5140 2 ปีที่แล้ว

    you made it clear, thank you

  • @peterzhang7600
    @peterzhang7600 2 ปีที่แล้ว

    I am new to JavaScript. Could anyone let me know where is the "key" 26/31/42 coming from at 6:45? Thanks