Я пытаюсь создать свою собственную функцию перемешивания
Я новичок в программировании (1 месяц) Мне было дано упражнение по созданию простой «подобной программы» для спрайтов для отработки объектов. мы можем использовать только ECMAS5, и нам нужно создавать объекты только с синтаксисом функции и прототипа.
Playlist.prototype.shuffle = function(){
this.shuffled = true;
let cont = this.songs.length;
let i = 0;
let shuffledList = new Array(this.songs.length);
let checkerArray = new Array(); //array que almacena todos los numeros generados aleatoriamente
while(cont != 0){
for(let j = 0; j < checkerArray.length; j++){ //recorro el array para comprobar si algun numero (position) se repite
let position = Math.floor(Math.random() * this.songs.length);
if(checkerArray.includes(position) == false){ //si el numero generado no se encuentra aun en el array:
shuffledList[position] = this.songs[i]; //añado a la lista shuffled en el index aleatorio, la cancion del array original en la posicion j
cont--;
i++;
checkerArray.push(position);
}
}
}
return shuffledList;
}
мой метод попадает в бесконечный цикл, и я не могу найти, почему, я пытался изменить код в несколькихпути, но я всегда получаю один и тот же результат, у кого-нибудь есть подсказка? Я знаю, что алгоритм перемешивания уже сделан, что лучше, чем то, что я пытаюсь, но копирование и вставка их не помогут мне учиться. Я хотел бы узнать, что я делаю неправильно