How to create an array with random values with the help of JavaScript?
We can use JavaScript Math.random() method to generate random values. JavaScript provides us with different Array methods, such as from(), fill(), and push(), that can be used to create an array with random values.
Arrays in JavaScript are a powerful feature that allows you to store a collection of values of different data types. They are widely used in many applications, and having an array with random values can be very useful in certain scenarios.
An array of random values is a collection of randomly generated numbers stored in an array. The values in an array of random values can be generated using built-in functions or custom algorithms. The size of the array and the range of values can be specified as needed.
Using Math.random()
Math.random() is one of the most common built-in JavaScript methods that generate a random number between 0 (inclusive) and 1 (exclusive). It can be used to generate random numbers for various purposes, such as for simulations, games, and statistical applications.
We use a for loop and Math.random() method to create an array. Look at the syntax below −
Syntax
Following is the syntax to create an array with random values using a loop and Math.random() method.
The above syntax creates an array of twenty numbers between 0 and 1.
To create an array of random natural numbers we can use the following syntax −
Example
In the following example, we create an array of twenty random numbers between 1 and 100.
In this example, we first create an empty array called randomArr. We then use a for loop to iterate 10 times, and in each iteration, we use the Math.random() function to generate a random number between 0 and 1. We then multiply this number by 100 and add 1 to get a number between 1 and 100. Finally, we use the Math.floor() function to round down the number to the nearest integer. We then use the push() method to add this random number to the randomArr.
The output gets changed as it produces random values every time the code gets executed.
Using Array.from() Method
The Array.from() method and map() method can be used together in JavaScript to create an array with values generated by a specified function. The Array.from() method creates an array from an array-like or iterable object, and the map() method can be used to apply a function to each element in the array.
Example
In this example, we pass two arguments to the Array.from() method: an object with a length property of 10 and a function that returns a random number between 1 and 100. The Array.from() method creates a new array with the given length and fills it with the result of calling the provided function.
Using Array.fill() Method
The Array.fill() method is another way to create an array with random values in JavaScript. It allows you to fill an array with a static value or a value generated by a function. Let’s see how you can use the Array.fill() method to create an array with random values.
In conclusion, arrays of random values are a useful tool for many applications in programming, particularly in simulations, games, and statistics. JavaScript provides several methods for generating arrays of random values, including using the Math.random() method, for loops, the Array.fill() method, the Array.from() method with map(), and the Array constructor.
Each of these methods provides a way to create arrays of random values, and choosing the best method depends on the specific requirements of your project. The Math.random() function is a simple and straightforward way to generate random values, while the for loop provides more control over the generation of the values. The Array.fill() method and the Array.from() method with map() allow you to fill an array with values generated by a specified function, making it easy to generate arrays of random values.
Javascript random number array
The only argument we passed to the sort() method is a compare function.
Copied!function getMultipleRandom(arr, num) const shuffled = [. arr].sort(() => 0.5 - Math.random()); return shuffled.slice(0, num); >
The function gets called with a pair of array elements ( a and b ) and defines the sort order of the array.
We used the Math.random() function to get a randomly sorted array.
The Math.random() function returns a random number from 0 up to 1 .
Copied!console.log(Math.random()) // 👉️ 0.99453534. console.log(Math.random()) // 👉️ 0384848858. console.log(Math.random()) // 👉️ 0.58584833. console.log(0.5 - Math.random()); // 👉️ -0.10394939. console.log(0.5 - Math.random()); // 👉️ 0.364345434. console.log(0.5 - Math.random()); // 👉️ 0.075445654.
The compare function we passed to the sort() method gets called with 2 array elements every time — a and b .
These are the 3 scenarios that could happen on each iteration:
- If the return value of the compare function is greater than 0 , then element b gets sorted before a .
- If the return value is less than 0 , then element a gets sorted before b .
- If the return value is equal to 0 , then the original order of the array elements is kept.
The Math.random() function returns a float from 0 to 1 , so we picked a number in the middle ( 0.5 ) from which we subtract the result of calling Math.random() .
This basically shuffles the array.
The last step is to use the Array.slice method to get multiple elements from the shuffled array.
Copied!function getMultipleRandom(arr, num) const shuffled = [. arr].sort(() => 0.5 - Math.random()); return shuffled.slice(0, num); >
The slice method takes the following 2 arguments:
Name | Description |
---|---|
start index | The index of the first element to include in the returned array |
end index | The index of the first element to exclude from the returned array |
When only a single argument is passed to the Array.slice() method, the slice goes to the end of the array.
Math . random ( )
Одна из самых часто используемых функции объекта Math . Возвращает случайное число в диапазоне от 0 до 1 , не включая 1 .
Как пишется
Скопировать ссылку «Как пишется» Скопировано
const value = Math.random() console.log(value)// выведет случайное число
const value = Math.random() console.log(value) // выведет случайное число
Детали реализации
Скопировать ссылку «Детали реализации» Скопировано
Давайте заглянем под капот Math . random ( ) , и узнаем, как же в действительности происходит формирование случайного числа.
На самом деле, функция не генерирует случайное число. Это лишь иллюзия. За генерацию подобных чисел отвечают специальные алгоритмы, которые относятся к категории PRNG — pseudorandom number generator, их также называют генераторами псевдослучайных чисел.
Генератор псевдослучайных чисел (ГПСЧ) — метод генерации чисел арифметическим способом.
Любой PRNG-алгоритм генерирует числа, которые, в конечном счёте, будут повторяться. Поэтому числа, генерируемые Math . random ( ) , можно предугадать.
Если ваша задача не подразумевает работу с криптографией (например, вычисление кодов аутентичности) — вам будет достаточно псевдослучайных чисел. Но если такая потребность всё же есть — используйте crypto . get Random Values ( ) вместо Math . random ( ) .
Но какой алгоритм используется для нашей функции, их же много?
Разработчики браузерных движков сами определяют, какой алгоритм будет применяться в их среде. Но начиная с 2015 года, большинством используется xorshift128+. В этот список входят: Firefox, Safari и браузеры, использующие движок V8 (Chromium-подобные браузеры).
На практике
Скопировать ссылку «На практике» Скопировано
Николай Лопин советует
Скопировать ссылку «Николай Лопин советует» Скопировано
🛠 Не используйте генерацию числа в критичных местах, например для ключа доступа. В этом случае лучше использовать Web Cryptography API. Он работает медленнее, но криптографически устойчив:
window.crypto.getRandomValues(new Uint32Array(1))[0]// вернет случайное число от 0 до 2^32
window.crypto.getRandomValues(new Uint32Array(1))[0] // вернет случайное число от 0 до 2^32
🛠 Используется, когда нужно сгенерировать случайное число в заданном диапазоне. Функция возвращает число от 0 до 1, но диапазон можно расширить с помощью формулы:
Math.floor(Math.random() * (max - min)) + min// от минимума до максимума, не включая максимум
Math.floor(Math.random() * (max - min)) + min // от минимума до максимума, не включая максимум
🛠 Используется для выбора случайного элемента из массива. Например, вы хотите отобразить случайный товар дня из списка или же показать пользователю несколько элементов из его коллекции любимых песен.