# String Interpolation

#1

In the Classes lesson on static methods, we created a static method called .generatePassword() that would generate a random pin number for hospital employees to use. We typically think of pin numbers having 4 digits, and using the code in the example, numbers less than 1000 would display an output, e.g. 548, that would not contain a leading 0. I played around with the code a bit, which led me to this attempt to solve my question:

``````
}
else if (password < 1000) {
} else {
}
}
``````

I was not sure if ‘0’ + 548 = 0548 would function as 0548 if I entered it into a prompt that checked if the two values were the same, so I went back to review string interpolation. The test I wrote returned a false value, and I assume that means that the program would not recognize those two as being the same. Is there a way I can address this issue?

#2

i wouldn’t choice for this approach, it weakens the pin code

we could do this:

``````var val = Math.floor(1000 + Math.random() * 9000);
``````

then then we 1000 till 9999. So we can’t get the first 1000 values. Which i don’t is a good either.

i like this solution:

``````var seq = (Math.floor(Math.random() * 10000) + 10000).toString().substring(1);
``````

we generate a random number between 0 and 10,000. Then take a substring to get get the last 4 digits.

#3

Makes sense, thank you!