У меня проблема с джаваскриптом. У меня есть пользователь, который вводит список имен, которые я затем помещаю в массив. Короче говоря, я программирую случайный способ для людей выяснить, для кого они будут покупать рождественские подарки. Например, исходный массив состоит из следующих имен:
Alex
Joel
Lindsay
Cori
Затем я хочу рандомизировать имена, чтобы получить случайный список, подобный следующему:
Lindsay
Cori
Joel
Alex
Затем я бы отобразил имена из первого массива и выровнял их с рандомизированным именем в том же месте. Например, в этом примере Алекс связан с Линдси, Джоэл связан с Кори, Линдси связан с Джоэлом, а Кори связан с Алексом. В настоящее время я использую следующий метод рандомизации:
function shuffle(array){
var m = array.length, t, i;
while(m){
i = Math.floor(Math.random() * m--);
t = array[m];
array[m] = array[i];
array[i] = t;
}
return array;
};
Проблема с этой функцией заключается в том, что массив не рандомизируется в новое место. Например, с помощью этого метода я могу иметь следующий исходный массив:
Alex
Joel
Lindsay
Cori
И мой массив с приведенной выше функцией для его рандомизации приведет к чему-то вроде этого:
Cori
Alex
Lindsay
Joel
Это означает, что Алекс связан с Кори, Джоэл связан с Алексом, Линдси связан с Линдси, а Кори связан с Джоэлом. Вот в чем проблема. Если это программа, чтобы узнать, кто кому покупает рождественский подарок, Линдси НЕ может купить подарок для Линдси.
Какой будет подходящая функция рандомизации массива для решения этой проблемы?
Спасибо за помощь!!