[英]javascript split an array of dates by date range
我有一整年( all
)的連續日期。
我也有一個具有2個日期范圍的數組( datesArray
)。
我遍歷第一個數組,並獲取該日期另一個數組的索引,該索引要么返回索引,要么為-1。
然后,我將該索引與上一個索引進行比較,看是否存在匹配項
如果找到-1,則需要創建一個數組並添加日期。 如果下一個日期也是-1,我想添加到新創建的數組中,否則什么也不做。
我應該以2個單獨的數組結束,每個日期范圍為1個
var prev = '';
var array = [];
var j = 0;
$.each(all, function(i,v) {
var index = datesArray.map(Number).indexOf(+v);
if(index === prev) {
array[j].push(v);
}
else if(index === -1) {
array[j] = v;
j++;
}
prev = datesArray.map(Number).indexOf(+v);
});
我如何完成我的代碼以創建這2個新數組,或者甚至更好地在第一個范圍的最后一個日期和第二個范圍的第一個日期之間將datesArray
2個?
我在這里搜索后就能解決問題了
var ranges = function() {
var today,
oneDay = 24 * 60 * 60 * 1000, // hours*minutes*seconds*milliseconds
prev = new Date(datesArray[0]),
range = [];
$.each(datesArray, function(i,v) {
if(i === 0) {
prev = datesArray[i];
}
else {
prev = datesArray[i - 1];
}
var d = new Date(prev); // today!
var diffDays = Math.round(Math.abs((v.getTime() - d.getTime()) / (oneDay)));
if(diffDays > 1 || (datesArray.length - 1) === i) {
range.push(i);
}
});
return range;
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.