JS实现笛卡尔积算法的方法
来源:绵阳动力网络公司  时间:2015-04-09  阅读:136

今天绵阳动力网络公司为你介绍javascript笛卡尔积算法实现方法,实例分析了笛卡尔积算法的javascript实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下。这里可根据给的对象或者数组生成笛卡尔积:

//笛卡儿积组合
 function descartes(list) {
   //parent上一级索引;count指针计数
   var point = {};   
var result = [];
   var pIndex = null;
   var tempCount = 0; 
  var temp  = []; 
  //根据参数列生成指针对象
   for(var index in list)
   { 
    if(typeof list[index] == 'object') 
    { 
      point[index] = {'parent':pIndex,'count':0}
       pIndex = index; 
    }
   } 
  //单维度数据结构直接返回 
  if(pIndex == null) 
  {  
   return list; 
  }  
 //动态生成笛卡尔积  
 while(true) 
  {  
   for(var index in list) 
    {   
    tempCount = point[index]['count']; 
      temp.push(list[index][tempCount]); 
    }     //压入结果数组 
    result.push(temp);  
   temp = [];  
   //检查指针最大值问题 
    while(true)  
   {   
    if(point[index]['count']+1 >= list[index].length) 
      {  
       point[index]['count'] = 0;     
    pIndex = point[index]['parent'];      
   if(pIndex == null)    
     {       
    return result;   
      }      
   //赋值parent进行再次检查       
  index = pIndex;  
     }    
   else    
  {      
   point[index]['count']++;  
       break;    
   }   
  } 
  } 
} 

 
  • 电话咨询

  • 0816-2318288