本文实例讲述了JS笛卡尔积算法与多重数组笛卡尔积实现方法。分享给大家供大家参考,具体如下:
js 笛卡尔积算法的实现代码,据对象或者数组生成笛卡尔积,并介绍了一个javascript多重数组笛卡尔积的例子,以及java实现笛卡尔积的算法与实例代码。
一、javascript笛卡尔积算法代码
例子,根据对象或者数组生成笛卡尔积。
= list[index].length) {
point[index]['count'] = 0;
pIndex = point[index]['parent'];
if (pIndex == null) {
return result;
}
//赋值parent进行再次检查
index = pIndex;
} else {
point[index]['count']++;
break;
}
}
}
}
二、js实现多重数组笛卡尔积
例子:
(function() {
dwn = function(a) {
document.writeln(a + "
") }; //笛卡尔积 var Cartesian = function(a,b) { var ret = []; for (var i = 0; i < a.length; i++) { for (var j = 0; j < b.length; j++) { ret.push(ft(a[i],b[j])); } } return ret; } var ft = function(a,b) { if (! (a instanceof Array)) a = [a]; var ret = Array.call(null,a); ret.push(b); return ret; } //多个一起做笛卡尔积 multiCartesian = function(data) { var len = data.length; if (len == 0) return []; else if (len == 1) return data[0]; else { var r = data[0]; for (var i = 1; i < len; i++) { r = Cartesian(r,data[i]); } return r; } } })(); var data = [['a','c'],[1,2,3,4],['A','B'],['#','@','+'],['Mary','Terry','KYO']]; var r = multiCartesian(data); for (var i = 0; i < r.length; i++) { dwn("(" + r[i] + ")"); }
") }; //笛卡尔积 var Cartesian = function(a,b) { var ret = []; for (var i = 0; i < a.length; i++) { for (var j = 0; j < b.length; j++) { ret.push(ft(a[i],b[j])); } } return ret; } var ft = function(a,b) { if (! (a instanceof Array)) a = [a]; var ret = Array.call(null,a); ret.push(b); return ret; } //多个一起做笛卡尔积 multiCartesian = function(data) { var len = data.length; if (len == 0) return []; else if (len == 1) return data[0]; else { var r = data[0]; for (var i = 1; i < len; i++) { r = Cartesian(r,data[i]); } return r; } } })(); var data = [['a','c'],[1,2,3,4],['A','B'],['#','@','+'],['Mary','Terry','KYO']]; var r = multiCartesian(data); for (var i = 0; i < r.length; i++) { dwn("(" + r[i] + ")"); }
为加深对笛卡尔积的理解,这里推荐一篇java笛卡尔积的方法教程:,大家可以参考下。
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》及《错误与调试技巧总结》
希望本文所述对大家JavaScript程序设计有所帮助。
原文链接:https://www.f2er.com/js/34905.html