Если я вас правильно понимаю, то вы хотите:
- начать со списка некоторых пустых групп, которые могут расти при добавлении людей, но никогда не превышать 10 членов
- по запросу (нажатие кнопки) добавляет произвольное число людей в первую группу, которое может принять всех запрашиваемых членов.
- , если ни одна группа не может принять всех запрошенных участников, добавьте новую группу и добавьте запрос к этому..
Предполагая, что этот способ упрощает использование многомерных массивов ("массивов с двумя столбцами):
var myArray = [0,0,0];
function groups() {
var form = document.getElementById('number').value;
if (form >=1) {
for (var i; i<myArray.length; i++) {
if (myArray[i] < 10 - form) {
myArray[i] += form;
return;
}
}
myArray.push(form); // this will only happen if "return" up there never happened
}
else {alert("no");
}
Если вы хотите, чтобы это имя группы / aмногомерный массив, вы можете сделать это следующим образом:
var myArray = [['Group 0',0], ['Group 1',0], ['Group 2',0]];
function groups() {
var form = document.getElementById('number').value;
if (form >=1) {
for (var i; i<myArray.length; i++) {
if (myArray[i][1] < 10 - form) { // myArray[i][1] is the number of reservations in group i, myArray[i][0] would be the group's name
myArray[i][1] += form;
return;
}
}
myArray.push(['Group ' + myArray.length, form); // this will only happen if "return" up there never happened
}
else {alert("no");
}
Для лучшей читаемости вы можете использовать структурированные объекты внутри myArray вместо нескольких массивов:
var myArray = [{name:'Group 0',reserved:0}, {name:'Group 1',reserved:0}, {name:'Group 2',reserved:0}];
function groups() {
var form = document.getElementById('number').value;
if (form >=1) {
for (var i; i<myArray.length; i++) {
if (myArray[i].reserved < 10 - form) { // myArray[i].reserved is the number of reservations in group i, myArray[i].name would be the group's name
myArray[i].reserved += form;
return;
}
}
myArray.push({name:'Group ' + myArray.length, reserved:form); // this will only happen if "return" up there never happened
}
else {alert("no");
}