function ck(n){
 if(n==0){
  if(checkc()){return true;}else{return false;};
  }
  else if(n==1){
   if(checka()){return true;}else{return false;};
   }
  else if(n==2){
   if(checkb()){return true;}else{return false;};
   }
 } 

解决方案 »

  1.   

    function ck(n){
      return n>=0 && n<=2 && checkc();

      

  2.   


     function ck(n){
       var ck_fn = [checkc,checka,checkb];
       return ck_fn[n]();
     } 
      

  3.   

    return [checkc,checka,checkb][n]();
      

  4.   

    看错了,原来不是同一个函数
    function ck(n){
      return (n==0 && checkc())||(n==1 && checka())||(n==2 && checkb());

      

  5.   

    数组声明也不要了。function ck(n){
       return [checkc,checka,checkb][n]();
     } 
      

  6.   

    那,
     if(a()&b()){return true;}else{return false;};
    可以写成
    return (a() && b());吗?
    还是要这样?
    return a() && b() ? true: false;
      

  7.   

    你就不能把checkc()、checkcb()、checka()三个函数合为一个吗?在这里面处理