Our aim is to randomly display a text string from a set. It involves the following steps
var text_st = new Array("String1", "String2", "String3", "String4", "String5", "String6", "String7", "String8", "String9", "String10"); var l = text_st.length; var rnd_no = Math.floor(l*Math.random()); alert(text_st[rnd_no]);
Thus, we first create our array and add elements to it – 10 in this case. To find the number of array elements, we employ the ARRAY_NAME.length property and store the value in a variable. The JavaScript Math.round() gets us a random number between 0.0 and 1.0 which we then multiply with the array length value. Lastly, the Math.floor() method rounds down the random floating point (decimal) number to an integer. This integer serves as the index number of the array and we display our randomly generated text.
Note: Array are zero-indexed, thus, we can use the value of variable l (length of the array) directly because we are using floor() to round down to an integer.
When to randomly display text on a web page?
I have used this code on several web sites to display a random testimonial from a set. So each time the web page loads a testimonial is selected and displayed at random. The code can also be used to display a random quote or a greeting.
One good thing about this is that my JavaScript array that stores the testimonials or quotes resides in an external file. If I want to update the set of testimonials to be displayed, I simply need to edit a single file.