lavezzi1
@lavezzi1

Как рандомно вывести три элемента из array в js?

Всем привет. Нужно из массива отобрать три рандомных элемента. Как оптимально это сделать?
  • Вопрос задан
  • 1602 просмотра
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
function getRandom(arr, n) {
    var result = new Array(n),
        len = arr.length,
        taken = new Array(len);
    if (n > len)
        throw new RangeError("getRandom: more elements taken than available");
    while (n--) {
        var x = Math.floor(Math.random() * len);
        result[n] = arr[x in taken ? taken[x] : x];
        taken[x] = --len;
    }
    return result;
}

Отсюда.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@xutesayor
Генерируем три случайных индекса в промежутке от 0 до "длинна массива". Получаем из массива значения по этим индексам.
Ответ написан
evgeniy8705
@evgeniy8705
Повелитель вселенной
let getArrayElements = (arr, n = arr.length) => {
	let resultArray = [];
  let array = arr.slice();
  n = n > array.length ? array.length : n

	for (let i = 0; i < n; i += 1) {
		resultArray.push(array.splice(Math.floor(Math.random() * array.length), 1)[0]);
	}

	return resultArray;
}
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы