javascript笛卡尔积算法实现方法
本文实例讲述了javascript笛卡尔积算法实现方法。分享给大家供大家参考。具体分析如下:
这里可根据给的对象或者数组生成笛卡尔积
//笛卡儿积组合 functiondescartes(list) { //parent上一级索引;count指针计数 varpoint={}; varresult=[]; varpIndex=null; vartempCount=0; vartemp=[]; //根据参数列生成指针对象 for(varindexinlist) { if(typeoflist[index]=='object') { point[index]={'parent':pIndex,'count':0} pIndex=index; } } //单维度数据结构直接返回 if(pIndex==null) { returnlist; } //动态生成笛卡尔积 while(true) { for(varindexinlist) { 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) { returnresult; } //赋值parent进行再次检查 index=pIndex; } else { point[index]['count']++; break; } } } }
希望本文所述对大家的javascript程序设计有所帮助。