本文实例讲述了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;}}}}希望本文所述对大家的javascript程序设计有所帮助。