我有一個數組分佈在天
names = ["A", "B", "C", ...];
15人及日期在一個月內,較週一,週二,週三,週四和週日
days = [1, 2, 3, 4, 7, 8 ..., 31];
我有隨機分佈者該人至少2次在本月但有一些條件。
一些人有一些偏好,說他們喜歡哪個工作日。
如何儲存他們的偏好以及如何在所有的日子裏分配這些人,所以每一天都有一個人?
我想我必須循環過幾天,然後隨機挑選其中一個人,在挑選人之前,我必須檢查他/她的偏好是否合適。如果該人已被使用過兩次,他/她應該從陣列中刪除,所以他/她不能再次使用。
這是一個正確的方法來解決這個問題嗎?
編輯
到目前爲止我的代碼
function getDaysArray(year, month) {
var personNames = ["A", "B", "C"];
var numDaysInMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
var daysInWeek = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];
var daysIndex = { 'Mon': 0, 'Tue': 1, 'Wed': 2, 'Thu': 3, 'Fri': 4, 'Sat': 5, 'Sun': 6 };
var index = daysIndex[(new Date(year, month - 1, 1)).toString().split(' ')[0]];
var indexExceptions = [100];
var daysArray = [];
var personName, date, weekdayName;
// loop through all days in month
for (i = 0, length = numDaysInMonth[month - 1]; i < length; i++) {
personName = personNames[Math.floor(Math.random() * personNames.length)];
date = i + 1;
weekdayName = daysInWeek[index++]
daysArray.push(date + '. ' + weekdayName + ': ' + personName);
// reset to new week
if (index == 7) index = 0;
}
return daysArray;
}
console.log(getDaysArray(2015, 10));
店裏的人作爲對象,添加名稱和偏好性。但似乎還有一些必要的邏輯(如將月份的日數與週日數相關聯)。你可以在代碼片段或[fiddle](http://jsfiddle.net/)中提供你的當前代碼。這樣,它可以幫助更具體。 – dakab
這也是我在使用人物對象數組和日期對象數組中的建議波紋管 – PC3TJ