Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Массив только из четных чисел (https://javascript.ru/forum/dom-window/80516-massiv-tolko-iz-chetnykh-chisel.html)

s4meone 15.06.2020 16:59

Массив только из четных чисел
 
Всем привет.
const arr = new Array(50).fill(0).map((_, i) => i + 1);

Вот есть массив, где все числа от 1 до 50. Мне нужно получить такой же массив, но только из четных чисел (2,4,6,..,50) и оттуда же вывести случайный один элемент. Думаю, что случайное число можно вывести так:
var randnum = arr[Math.floor(Math.random()*arr.length)];

Не могли бы помочь?

laimas 15.06.2020 17:19

Это сразу создаст массив только из четных чисел

const arr = Array.from(Array(25), (x=2, i) => x + i * 2);

рони 15.06.2020 19:14

s4meone,
<script>
var randnum = _ => 2 * (Math.random()*25|0 + 1);
for (var i = 0; i < 34; i++) {
document.write(`${randnum()},`)
}
  </script>

Vlasenko Fedor 15.06.2020 22:33

var randNum = _ => Math.random()*51 & -2;

:) вариант от 0 до 50

рони 15.06.2020 23:18

Vlasenko Fedor,
:thanks:

s4meone 16.06.2020 08:03

а не подскажете, как можно сделать массив от N до 1? Например: 50, 49, 48, ... , 1

laimas 16.06.2020 09:38

Цитата:

Сообщение от s4meone
Например: 50, 49, 48, ... , 1

const arr = Array.from(Array(50), (x=50, i) => x - i);


Здесь x задает начальное значение, от которого последовательно вычитается значение текущей итерации. Количество, следовательно и последнее значение массива, задается тут Array(50). Кроме того, если уже есть массив от 1 до N с возрастанием, то получить обратный это развернуть массив - arr.reverse().

тут методы массива
https://developer.mozilla.org/ru/doc.../Array/reverse

рони 16.06.2020 10:01

Цитата:

Сообщение от s4meone
Например: 50, 49, 48, ... , 1

<script>
let length = 50;
const arr = Array.from({length}, _ => length--);
document.write(JSON.stringify(arr, "", 4))
  </script>


Часовой пояс GMT +3, время: 20:55.