๐จโ๐ซ Mastering JavaScript Loops
Table of contents
- ๐ฅ The OG - for Loop
- ๐ while Loop: A Rebel in the Loop World
- ๐ The Mysterious do-while Loop
- ๐ for...in Loop: The Object Explorer
- ๐ for...of Loop: The Array Whisperer
- ๐จbreak and continue: The Loop Control Freaks
- ๐ชNested Loops: Loop Inception
- โ๏ธ Choosing the Right Loop for the Job
- ๐ญ Final thoughts
- ๐ References
Alright, buckle up ๐๏ธ ! Let's talk about JavaScript loops โ those trusty tools that let you do stuff repeatedly without losing your sanity. It's like having a magic wand for repetitive tasks in your code.
๐ฅ The OG - for
Loop
The classic, the OG โ the for
loop. It's like the vanilla ice cream of loops. You give it a start point, an endpoint, and an increment, and it just marches through your code.
for (let i = 0; i < 5; i++) {
console.log(`Counting... ${i}`);
}
// Console Result:
// Counting... 0
// Counting... 1
// Counting... 2
// Counting... 3
// Counting... 4
๐ while
Loop: A Rebel in the Loop World
The while
loop is like a rebel. It keeps going until the condition is false. Watch out ๐, though, forget that increment, and you might have an infinite loop party!
let count = 0;
while (count < 5) {
console.log(`Rebel counting... ${count}`);
count++;
}
// Console Result:
// Rebel counting... 0
// Rebel counting... 1
// Rebel counting... 2
// Rebel counting... 3
// Rebel counting... 4
๐ The Mysterious do-while
Loop
Then there's the mysterious do-while
loop. It's like a while
loop with a dramatic ๐ญ entrance โ it always executes the code block at least once, no matter what!
let mysteryCount = 0;
do {
console.log(`Mysterious counting... ${mysteryCount}`);
mysteryCount++;
} while (mysteryCount < 5);
// Console Result:
// Mysterious counting... 0
// Mysterious counting... 1
// Mysterious counting... 2
// Mysterious counting... 3
// Mysterious counting... 4
๐ for...in
Loop: The Object Explorer
When you want to explore the properties of an object, you call in the for...in
loop. It's like a detective ๐ต๏ธ, sniffing out those object keys ๐.
const superhero = {
name: 'Spider-Man',
power: 'Web-slinging',
enemy: 'Green Goblin'
};
for (const prop in superhero) {
console.log(`${prop}: ${superhero[prop]}`);
}
// Console Result:
// name: Spider-Man
// power: Web-slinging
// enemy: Green Goblin
๐ for...of
Loop: The Array Whisperer
The for...of
loop is like the array whisperer. It goes through the values of an iterable (like an array) without bothering with pesky indices ๐ค.
const fruits = ['apple', 'banana', 'orange'];
for (const fruit of fruits) {
console.log(`Found a tasty ${fruit}`);
}
// Console Result:
// Found a tasty apple
// Found a tasty banana
// Found a tasty orange
๐จbreak
and continue
: The Loop Control Freaks
Sometimes, you need to control the loop's behavior. Enter break
and continue
. break
is like the emergency exit, and continue
is the "I'm skipping this one" button ๐งฎ.
for (let i = 0; i < 10; i++) {
if (i === 5) {
break; // Emergency exit!
}
if (i % 2 === 0) {
continue; // Skip even numbers!
}
console.log(`Current number: ${i}`);
}
// Console Result:
// Current number: 1
// Current number: 3
๐ชNested Loops: Loop Inception
Nested loops are like loop inception. You have a loop inside a loop. It's powerful but can get tricky ๐ช. Don't get lost in there!
// write code to interate over a matrix to show a specific case where nested loops make sense
for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
console.log(`Loopception - i: ${i}, j: ${j}`);
}
}
// Console Result:
// Loopception - i: 0, j: 0
// Loopception - i: 0, j: 1
// Loopception - i: 0, j: 2
// Loopception - i: 1, j: 0
// Loopception - i: 1, j: 1
// Loopception - i: 1, j: 2
// Loopception - i: 2, j: 0
// Loopception - i: 2, j: 1
โ๏ธ Choosing the Right Loop for the Job
Lastly, choosing the right loop is like picking the right tool for the job. Need to iterate over properties? Use for...in
. Dealing with arrays? for...of
or array methods are your pals. Need to deal with matrix? for..index
is the way to go ๐ค
๐ญ Final thoughts
So, there you have it โ a wild tour of JavaScript loops. They're like the backbone of your code, helping you conquer the world of repetition and iteration! ๐
๐ References
Wang to go deep? ๐
Subscribe to my newsletter
Read articles from Ricardo Rocha // ๐จโ๐ป directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Ricardo Rocha // ๐จโ๐ป
Ricardo Rocha // ๐จโ๐ป
Hey there ๐! ๐ So, here's the lowdown โ I'm a full-stack web dev with a serious crush on front-end development. Armed with a master's in Software Engineering, I've been rocking the programming scene for a solid decade. I've got this knack for software architecture, team and project management, and even dabble in the magical realm of deep learning (yeah, AI, baby!). My coding toolbox ๐งฐ is stacked โ JavaScript, TypeScript, React, Angular, C#, SQL, NoSQL - you name it. Nevertheless, learning is my best tool ๐! But here's the thing โ I'm not just about the code. My soft skills game is strong โ think big-picture pondering, critical thinking, and communication skills sharper than a ninja's blade. Leading, mentoring, and rocking successful projects? Yeah, that's my jam as well. Now, outside the coding dojo, I'm a music lover. Saxophone and piano are my instruments of choice, teaching me the art of teamwork and staying cool under pressure. I've got a soft spot for giving back too ๐ฅฐ. I've lent a hand to the Jacksonville Human Society (dog shelter). And speaking of sharing wisdom, I also write blogs and buzz around on Twitter, LinkedIn, Stackoverflow and my own Blog. Go ahead and check me out: Linkedin (https://www.linkedin.com/in/ricardogomesrocha/) Stackoverflow (https://stackoverflow.com/users/5148197/ricardo-rocha) Twitter (https://twitter.com/RochaDaRicardo) Github (https://github.com/RicardoGomesRocha) Blog (https://ricardo-tech-lover.hashnode.dev/) Let's connect and dive into the exciting world of web development! Cheers ๐ฅ, Ricardo ๐