欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

javascript笛卡爾積算法實(shí)現(xiàn)方法

 更新時(shí)間:2015年04月08日 14:50:39   作者:liuli  
這篇文章主要介紹了javascript笛卡爾積算法實(shí)現(xiàn)方法,實(shí)例分析了笛卡爾積算法的javascript實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了javascript笛卡爾積算法實(shí)現(xiàn)方法。分享給大家供大家參考。具體分析如下:

這里可根據(jù)給的對(duì)象或者數(shù)組生成笛卡爾積

//笛卡兒積組合
function descartes(list)
{
  //parent上一級(jí)索引;count指針計(jì)數(shù)
  var point = {};
  var result = [];
  var pIndex = null;
  var tempCount = 0;
  var temp  = [];
  //根據(jù)參數(shù)列生成指針對(duì)象
  for(var index in list)
  {
    if(typeof list[index] == 'object')
    {
      point[index] = {'parent':pIndex,'count':0}
      pIndex = index;
    }
  }
  //單維度數(shù)據(jù)結(jié)構(gòu)直接返回
  if(pIndex == null)
  {
    return list;
  }
  //動(dòng)態(tài)生成笛卡爾積
  while(true)
  {
    for(var index in list)
    {
      tempCount = point[index]['count'];
      temp.push(list[index][tempCount]);
    }
    //壓入結(jié)果數(shù)組
    result.push(temp);
    temp = [];
    //檢查指針最大值問(wèn)題
    while(true)
    {
      if(point[index]['count']+1 >= list[index].length)
      {
        point[index]['count'] = 0;
        pIndex = point[index]['parent'];
        if(pIndex == null)
        {
          return result;
        }
        //賦值parent進(jìn)行再次檢查
        index = pIndex;
      }
      else
      {
        point[index]['count']++;
        break;
      }
    }
  }
}

希望本文所述對(duì)大家的javascript程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論