阅读背景:

js 关于笛卡尔乘积的运用

来源:互联网 
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>call</title>
</head>
<link rel="stylesheet" type="text/css" href="/go.html?url=css/bootstrap-responsive.min.css">
<link rel="stylesheet" type="text/css" href="/go.html?url=css/bootstrap.min.css">
<script src="js/jquery.js"></script>
<script>
function Cartesian(a,b){
	var ret=[];
	console.log(a+" "+b);
	for(var i=0; i<a.length;i++){
		for(var j=0;j<b.length;j++){
			ret.push(array(a[i],b[j]));
		}
	}
	return ret;
}
function array(a,b){
	var ret=[];
	if(!(a instanceof Array)){
		ret=Array.call(null,a);
	}
	else{
		ret=Array.apply(null,a);
	}
	ret.push(b);
	return ret;
}
function multiCartesian(data){
	var len=data.length;
	console.log(len);
	if(len==0){
		return [];
	}
	else if(len==1){
		return data[0];
	}
	else{
		var ret=data[0];
		for(var i=1;i<len;i++){
			ret=Cartesian(ret,data[i]);
		}
		return ret;
	}
}
var data=[['a','b'],[1,2,3],["q","w"]];
var arr=multiCartesian(data);
console.log(arr);
</script>
<body>
</body>
</html><!DOCTYPE html>
<html lang="zh-CN">
<head>
<met



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: