javascript笛卡爾積算法實現(xiàn)方法
本文實例講述了javascript笛卡爾積算法實現(xiàn)方法。分享給大家供大家參考。具體分析如下:
這里可根據(jù)給的對象或者數(shù)組生成笛卡爾積
//笛卡兒積組合
function descartes(list)
{
//parent上一級索引;count指針計數(shù)
var point = {};
var result = [];
var pIndex = null;
var tempCount = 0;
var temp = [];
//根據(jù)參數(shù)列生成指針對象
for(var index in list)
{
if(typeof list[index] == 'object')
{
point[index] = {'parent':pIndex,'count':0}
pIndex = index;
}
}
//單維度數(shù)據(jù)結構直接返回
if(pIndex == null)
{
return list;
}
//動態(tài)生成笛卡爾積
while(true)
{
for(var index in list)
{
tempCount = point[index]['count'];
temp.push(list[index][tempCount]);
}
//壓入結果數(shù)組
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程序設計有所幫助。
相關文章
javascript 兼容FF的onmouseenter和onmouseleave的代碼
經(jīng)過測試發(fā)現(xiàn),例子1 在 ff下抖動的厲害,ie下稍微有點。 具體原因 其實就是 mouseout 的冒泡機制 引起的。2008-07-07
外部web端訪問微信小程序云數(shù)據(jù)庫的三種方法總結
最近在研究微信小程序的云開發(fā)功能,下面這篇文章主要給大家介紹了關于外部web端訪問微信小程序云數(shù)據(jù)庫的三種方法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-04-04
js實現(xiàn)把時間戳轉(zhuǎn)換為yyyy-MM-dd hh:mm 格式(es6語法)
下面小編就為大家分享一篇js實現(xiàn)把時間戳轉(zhuǎn)換為yyyy-MM-dd hh:mm 格式(es6語法),具有很的參考價值,希望對大家有所幫助2017-12-12
js實現(xiàn)鍵盤上下左右鍵選擇文字并顯示在文本框的方法
這篇文章主要介紹了js實現(xiàn)鍵盤上下左右鍵選擇文字并顯示在文本框的方法,涉及javascript操作鍵盤事件及文本框的相關技巧,非常簡單實用,需要的朋友可以參考下2015-05-05
解決遍歷時Array.indexOf產(chǎn)生的性能問題
javascript中數(shù)組是沒有indexOf方法,extjs中給數(shù)據(jù)添加了該方法2012-07-07
JavaScript數(shù)組_動力節(jié)點Java學院整理
這篇文章主要介紹了JavaScript數(shù)組的相關知識,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-06-06
小程序按鈕避免多次調(diào)用接口和點擊方案實現(xiàn)(不用showLoading)
這篇文章主要介紹了小程序按鈕避免多次調(diào)用接口和點擊方案實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-04-04

