mappleleaf Ответов: 2

Что означает этот случайный возврат


Привет,


Я пытаюсь понять, что делает случайная функция в этой функции. вот первоначальное назначение этой функции

Эта функция возвращает массив, содержащий зашифрованный список значений. В массиве есть ровно четыре пары чисел (1,2,3 и 4) и одно непарное число (5). Значения в массиве скремблируются с помощью метода array.sort() для сортировки массива псевдослучайным способом.

function randomAnswers(){
    var answers = [1,1,2,2,3,3,4,4,5];
    answers.sort(function(item){
        return .5 - Math.random();
    })
    return answers;
}


Что я уже пробовал:

Я знаю, что random возвращает числа от 0(включенные) до 1(не включенные). но я не получаю .5-Math.random(); в этой функции

2 Ответов

Рейтинг:
0

Dave Kreskowiak

Чего тут не понимать?

Это просто математика. Сгенерируйте случайное число от 0 до 1 (включительно), вычтите его из 0,5 и верните результат в любой код, который называется этим кодом.


Рейтинг:
0

PIEBALDconsult

Если это сработает, как .сравнение и сортировка предполагает сравнение двух объектов, чтобы вернуть значение...

=0 -- if the objects are "equal"
<0 -- if the first object is "less than" the second
>0 -- if the first object is "greater than" the second


Затем сортировка может упорядочить объекты в соответствии с их сравнениями,
Но! Здесь он получает "случайное" значение между -0,5 и +0,5, что приводит к непредсказуемо упорядоченной последовательности объектов.


mappleleaf

Большое спасибо тебе, Пегий, за помощь. хм так, .5 - Math.random(); это то же самое, что Math.random() -.5 и что возвращает числа между-.5 и +.5 правильно, но какова цель передачи элемента в функцию, если он не является частью случайного уравнения '.5 - Math.random();'

PIEBALDconsult

Просто чтобы удовлетворить требование, которое я подозреваю.