# In how many ways can you print in the console 50 times? (Javascript)

A while back, someone asked me in an interview to print “Hello World” in the console 50 times without using a loop.
The answer, was obviously, with recursion.
But was that the only answer?

Afterward, I start pondering… let’s find out?

If you want t…

This content originally appeared on DEV Community and was authored by Bruno Noriller

A while back, someone asked me in an interview to print "Hello World" in the console 50 times without using a loop.
The answer, was obviously, with recursion.
But was that the only answer?

Afterward, I start pondering... let's find out?

If you want to check it out: https://github.com/Noriller/js-console.log

I've made a repository and used jest to test if everything was working, I've also used this auxiliary function:

``````function Log() {
console.log("Hello World!");
}
``````

Most were just variations of the same thing... but I did manage to make it work in some unexpected ways.

## Brute forcing!

Because... why not?

``````Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log(); Log();
``````

## Using Loops

Ok, the interviewer said no loops, but here we can use...

``````// The classic For Loop
for (let i = 0; i < 50; i++) {
Log();
}

// Do While Loop
let i = 0;
do {
Log();
i++;
} while (i < 50);

// While Loop
let i = 0;
while (i < 50) {
Log();
i++;
}

// For Of
const arr = Array(50).fill(Log);
for (let x of arr) {
x();
}

// For In
const arr = Array(50).fill(Log);
const obj = Object.assign({}, arr);
for (let x in obj) {
obj[x]();
}
``````

### Using Javascript Array Functions

``````const arr = Array(50).fill(Log);

// Multiple Array Funcions
// Basically the same way...
arr.forEach(el => el());
arr.map(el => el());

arr.filter(el => el());
arr.find(el => el());
arr.findIndex(el => el());

arr.reduce((acc, el) => el(), {});
arr.reduceRight((acc, el) => el(), {});

arr.every(el => !el());
arr.some(el => el());
``````

Going a little crazy on the Array methods:

``````// Array From (basically a map)
Array.from(
Array(50).fill(Log),
x => x()
);

const arr = Array(50).fill(Log);

// Pop
while (arr.length > 0) {
arr.pop()();
}
// Shift
while (arr.length > 0) {
arr.shift()();
}
// Splice
while (arr.length > 0) {
arr.splice(0, 1)[0]();
}
``````

## Using Recursion

``````// Classic Recursion
function Log50(num = 1) {
if (num > 50) return;
Log();
Log50(num + 1);
}

Log50();
``````

## Using Time?

``````// Set Interval (basically a loop)
let i = 1;
const interval = setInterval(() => {
if (i > 50) return clearInterval(interval);
i++;
Log();
}, 1000);

// Set Timeout (basically recursion)
let i = 1;
function timers() {
const timeout = setTimeout(() => {
if (i > 50) return;
i++;
Log();
clearTimeout(timeout);
timers();
}, 1000);
}

timers();

// Set Immediate (same as timeout)
let i = 1;
function timers() {
const immediate = setImmediate(() => {
if (i > 50) return;
i++;
Log();
clearImmediate(immediate);
timers();
});
}

timers();

``````

## Try...catch?

``````class CustomError extends Error {
constructor(...args) {
super(...args);

this.Log50();
}

Log50(num = 1) {
if (num > 50) return;
Log();
this.Log50(num + 1);
}

}

try {
throw new CustomError();
} catch (error) {
}
``````

``````function* generator(num = 0) {
while (num < 50) {
num++;
yield Log();
}
}

[...generator()];
``````

You see... the basis ends up being either a loop or a recursion... it's mostly how you call it...

But hey... can you think of another way of doing it?

Cover Photo by Markus Spiske on Unsplash

This content originally appeared on DEV Community and was authored by Bruno Noriller

Print Share Comment Cite Upload Translate
APA
Bruno Noriller | Sciencx (2023-03-26T10:43:24+00:00) » In how many ways can you print in the console 50 times? (Javascript). Retrieved from https://www.scien.cx/2021/12/05/in-how-many-ways-can-you-print-in-the-console-50-times-javascript/.
MLA
" » In how many ways can you print in the console 50 times? (Javascript)." Bruno Noriller | Sciencx - Sunday December 5, 2021, https://www.scien.cx/2021/12/05/in-how-many-ways-can-you-print-in-the-console-50-times-javascript/
HARVARD
Bruno Noriller | Sciencx Sunday December 5, 2021 » In how many ways can you print in the console 50 times? (Javascript)., viewed 2023-03-26T10:43:24+00:00,<https://www.scien.cx/2021/12/05/in-how-many-ways-can-you-print-in-the-console-50-times-javascript/>
VANCOUVER
Bruno Noriller | Sciencx - » In how many ways can you print in the console 50 times? (Javascript). [Internet]. [Accessed 2023-03-26T10:43:24+00:00]. Available from: https://www.scien.cx/2021/12/05/in-how-many-ways-can-you-print-in-the-console-50-times-javascript/
CHICAGO
" » In how many ways can you print in the console 50 times? (Javascript)." Bruno Noriller | Sciencx - Accessed 2023-03-26T10:43:24+00:00. https://www.scien.cx/2021/12/05/in-how-many-ways-can-you-print-in-the-console-50-times-javascript/
IEEE
" » In how many ways can you print in the console 50 times? (Javascript)." Bruno Noriller | Sciencx [Online]. Available: https://www.scien.cx/2021/12/05/in-how-many-ways-can-you-print-in-the-console-50-times-javascript/. [Accessed: 2023-03-26T10:43:24+00:00]
rf:citation
» In how many ways can you print in the console 50 times? (Javascript) | Bruno Noriller | Sciencx | https://www.scien.cx/2021/12/05/in-how-many-ways-can-you-print-in-the-console-50-times-javascript/ | 2023-03-26T10:43:24+00:00