@prolina

Получить по паре одинаковых случайных элементов массива?

const colorsArray = [
    '#CD5C5C', '#CD5C5C', '#DC143C', '#DC143C',
    '#FF0000', '#FF0000', '#8B0000', '#8B0000',
    '#FFC0CB', '#FFC0CB', '#FF69B4', '#FF69B4',
    '#C71585', '#C71585', '#DB7093', '#DB7093',
    '#FFA07A', '#FFA07A', '#FF8C00', '#FF8C00',
    '#FFFF00', '#FFFF00', '#FFFACD', '#FFFACD',
    '#F0E68C', '#F0E68C', '#D8BFD8', '#D8BFD8',
    '#3CB371', '#3CB371', '#40E0D0', '#40E0D0',
    '#9370DB', '#9370DB', '#9932CC', '#9932CC',
    '#6A5ACD', '#6A5ACD', '#D2691E', '#D2691E',
    '#000000', '#000000', '#C0C0C0', '#C0C0C0',
    '#191970', '#191970', '#ADFF2F', '#ADFF2F',
    '#FFFF00', '#FFFF00', '#0000FF', '#0000FF' ,
    '#FF00FF', '#FF00FF', '#BC8F8F', '#BC8F8F',
    '#B8860B', '#B8860B', '#A52A2A', '#A52A2A',
    '#D2B48C', '#D2B48C', '#00FF7F', '#00FF7F'
]

card.value = colorsArray[Math.floor(Math.random() * colorsArray.length)];

Как получить по паре одинаковых случайных элементов массива? Важно, чтобы была именна пара одинаковых элементов, а не все разные.
  • Вопрос задан
  • 143 просмотра
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Каждому четному индексу N соотв. такой же цвет с индексом N+1

Возьмем случайное целое от 0 до половины длины, умножим на 2 и вуаля: это индекс первого. Плюс 1 это индекс второго.

var idxA = 2 * Math.floor(Math.random() * colorsArray.length / 2);
var idxB = idxA + 1;
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@bugagashnik
Попробуй сначала определить рандом индекс в переменную. Потом сравнить с соседними по индексам.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы