Forum Discussion
Hi @Pakhi,
Try this.
sl.range(6).map(x => "0123456789ABCDEF"[Math.round(Math.random()*15)]).join('')
Regards,
Viktor
Thanks its working!
Can you please explain this expression , actually how its working internally.
- viktor_n4 years agoContributor II
sl.range(6)- Generates me a list with number of elements.
Inside the parameter is specified how many elements to have the list.
Ex.[0,1,2,3,4,5]After that with the
map()function I iterate through that list.
And while iterating, for each element is generated a random number between 0 and 15.Random number is generated with
Math.random()andMath.round()functions.-
Math.random()- Generates a decimal number between 0 and 1. -
Math.random()*15- Generated number is multiplied by the number of characters in the string. -
Math.round(Math.random()*15)- Decimal number is rounded to the nearest whole number.
Ex.3.656- will be rounded to4.
Generated random number I use it as an index from which I get character from the string.
Ex."0123456789ABCDEF"[4] = "3"(returns the 4th index from the string).Now if we look at the preview of this expression, result will be list of strings.
Ex.["3", "8", "A", "1", "C", "D"]At the end the list is joined with
join()function. This function is used for transforming list into string. Parameter inside join function ('') means that it will join the elements together without nothing between the elements.Result at the end will be this:
"38A1CD"Hope this will help understand the expression 🙂
- Pakhi4 years agoNew Contributor III
excellent explanation 🙂
-