阿里笔试 使用 JavaScript 实现一个 getIntersection 函数,可获取多个区间的交集

阿里笔试 使用 JavaScript 实现一个 getIntersection 函数,可获取多个区间的交集

示例:

getIntersection([1, 4], [3, 5]); // return [ 3, 4 ]
getIntersection([5, 2], [4, 9], [3, 6]); // return [ 4, 5 ]
getIntersection([1, 7], [8, 9]); // return null
getIntersection(['x', 7], [4, 9]); // return null
getIntersection([1, 2]); // return [ 1, 2 ]
getIntersection([1, 2], [2, 3]); // return [ 2, 2 ]

对于这一题,,,,表示不会实现函数接收不定参数,于是乎只做到了完成两个参数的

还是有太多东西不会啊

我的提交:

function getIntersection(args1 ,args2 ) {
		args1="'"+args1+"'";
		args1a=args1.charAt(1);
		args1b=args1.charAt(3);
		
		args2="'"+args2+"'";
		args2a=args2.charAt(1);
		args2b=args2.charAt(3);		
		
		if(isNaN(args1a) || isNaN(args1b) || isNaN(args2a) || isNaN(args2b)  )
					return null;
		if(args1a>args1b){
			chang=args1a;
			args1a=args1b;
			args1b=chang;
		}		
		if(args2a>args2b){
			change=args2a;
			args2a=args2b;
			args2b=change;
		}		
		
		if(args1a<args2a){
			if(args1b<args2b){ 
				result2=args1b;
				result1=args2a;
			}else{
				result2=args2b;
				result1=args2a;
			}
		}else{
			changea=args1a;
			changeb=args1b;
			args1a=args2a;
			args1b=args2b;
			args2a=changea;
			args2b=changeb;
			if(args1b<args2b){
				result2=args1b;
				result1=args2a;
			}else{
				result2=args2b;
				result1=args2a;
			}
		}
		
		result="["+result1+","+result2+"]";
		
		if(args1b<args2a)
			return null;		
		
    	return result;
}

admin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: