87,910
社区成员
发帖
与我相关
我的任务
分享
var obj = [{ ms: "8:00", me: "9:00" }, { ms: "10:00", me: "15:00" }, { ms: "10:30", me: "16:00" }, { ms: "11:30", me: "14:00" }, { ms: "15:30", me: "16:30" }, { ms: "17:30", me: "19:00" }];
var obj1=[{ ms: "8:00", me: "11:00" }, { ms: "10:00", me: "15:00" },{ ms: "12:00", me: "15:00" }]
var obj2=[{ ms: "8:00", me: "10:00" }, { ms: "9:00", me: "11:00" },{ ms: "10:00", me: "12:00" },{ ms: "11:00", me: "13:00" },{ ms: "12:00", me: "14:00" }];
var obj3=[{ ms: "8:00", me: "10:00" }, { ms: "9:00", me: "11:00" },{ ms: "12:00", me: "14:00" },{ ms: "15:00", me: "16:00" },{ ms: "17:00", me: "19:00" },{ ms: "18:00", me: "20:00" }]
function getArr(arr){
var result = [],copy;
for(var i = 0,o;o = arr[i];i++){
copy = arr.concat([]);
copy.splice(i,1);
result.push(getNum(o,copy));
}
return result;
}
function getNum(obj,arr){
var n = 1;
for(var i = 0,o;o = arr[i];i++){
if(isCross(obj,o)){
n++;
}
}
return n;
}
function isCross(o1,o2){
var ms1 = trans(o1.ms), me1 = trans(o1.me), ms2 = trans(o2.ms), me2 = trans(o2.me);
if(me1 < ms2 || ms1 > me2){
return false;
}
return true;
}
function trans(str){
var arr = str.split(":");
return parseInt(arr[0]) + parseFloat(arr[1]/60);
}
console.log(getArr(obj),getArr(obj1),getArr(obj2),getArr(obj3));
function getNum(json){
var arr = [],arr1=[0],arr2=[];
var start1, end1, start2,end2;
var cont=0;//重复的个数
var clone_arr=[];
var num=[];
var clone_index=[];
if (json.length === 1) {
arr = [1];
}else{
for (var i = 0; i <json.length; i++) {
if(i!==0){
if(i<=cont){
continue
}
}
start1 = Number(json[i].ms.split(':').join(''));
end1 = Number(json[i].me.split(':').join(''));
num=[start1,end1];
for (var j = i+1; j < json.length; j++) {
start2 = Number(json[j].ms.split(':').join(''));
end2=Number(json[j].me.split(':').join(''));
if ( start2 < num[1]) {
if(end2>num[1]){
num[1]=end2;
}
cont=j
}
}
clone_arr.push(num)
}
//console.log(clone_arr)
if(clone_arr.length===1){
for(var x=0;x<json.length;x++){
arr[x]=json.length;
}
}else{
for(var y=0;y<clone_arr.length;y++){
var t=0;
for(var z=0;z<json.length;z++){
start2 = Number(json[z].ms.split(':').join(''));
end2=Number(json[z].me.split(':').join(''));
if(clone_arr[y][0]<=start2&&clone_arr[y][1]>=end2){
t++
}
}
clone_index.push(t);
}
for(var a=0;a<clone_index.length;a++){
//var arr1='';
if(clone_index[a]!==1){
for(var b=0;b<clone_index[a];b++){
arr.push(clone_index[a])
}
}else{
arr.push(1)
}
}
}
//console.log(clone_index);
}
var o=0;
for(var p=1;p<arr.length;p++){
if(arr[p]===1){
arr1.push(0);
o=0
}else if(arr[p]===arr[p-1]){
o++;
arr1.push(o);
}else{
arr1.push(0);
o=0
}
}
console.log(arr1)
arr2.push(arr,arr1);
return arr2
}