предполагая, у меня есть массив курсов:Суффль массив его подразделы массивов, которые имеют одинаковое значение поля
Courses:
Course:
name: 'Bible'
grade: 87
Course:
name: 'Math'
grade: 87
Course:
name: 'Physics'
grade: 87
Course:
name: 'Biology'
grade: 10
Course:
name: 'Geography'
grade: 10
Course:
name: 'Literature'
grade: 0
Я хочу, чтобы перетасовать суб курсы, которые имеют одинаковые ранги.
Например, один результат может быть (я пишу только имена КУРСЫ, но нужны целые поля):
Math, Bible, Physics, Geography, Biology, Literature
другой результат может быть:
Bible, Math, Physics, Biology, Geography, Literature
Литература будет конец, потому что нет другого класса, который равен 0.
У меня есть функция, которая наполняет массив (не заботясь о классах вспомогательных курсов):
function shuffle(array) {
var currentIndex = array.length,
temporaryValue, randomIndex;
// While there remain elements to shuffle...
while (0 !== currentIndex) {
// Pick a remaining element...
randomIndex = Math.floor(Math.random() * currentIndex);
currentIndex -= 1;
// And swap it with the current element.
temporaryValue = array[currentIndex];
array[currentIndex] = array[randomIndex];
array[randomIndex] = temporaryValue;
}
return array;
}
Массив:
var courses = [];
courses.push(new Course('Bible', 87));
courses.push(new Course('Math', 87));
courses.push(new Course('Physics', 87));
courses.push(new Course('Biology', 10));
courses.push(new Course('Geography', 10));
courses.push(new Course('Literature', 0));
function Course(name, grade) {
this.name = name;
this.grade = grade;
}
Это jsfiddle, что я создал: http://jsfiddle.net/Ht6Ym/3844/
Любая помощь приветствуется.
пожалуйста, вы можете показать массив – brk
@ user21813 97, я обновил свою тему. Благодаря! –
Сначала перетасовать, затем отсортировать по классам. – JJJ