矩阵算法

方法一:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> New Document </title>
<script>
var arrJson=[['aa','bb','cc'],['11','22']];
var arrJson_result=[
['aa','11'],
['aa','22'],
['bb','11'],
['bb','22'],
['cc','11'],
['cc','22']
];

var arrJson2=[['aa','bb','cc'],['11','22'],['d','e']];
var arrJson2_result=[
['aa','11','d'],
['aa','11','e'],
['aa','22','d'],
['aa','22','e'],
['bb','11','d'],
['bb','11','e'],
['bb','22','d'],
['bb','22','e'],
['cc','11','d'],
['cc','11','e'],
['cc','22','d'],
['cc','22','e']
];

</script>

<script type="text/javascript">
var arrJson = [['aa','bb','cc'],['11','22'],['d','e'],['1','2'],['m','n']];
var max = [];
var value = [];
function exeArry(arry){
for(var al=0; al<arry.length; al++){
max[al] = arry[al].length;
value[al] = 0;
}

var result = [];
result[result.length] = getArray(value,arry);
while(inc(value)){
result[result.length] = getArray(value,arry);
}
for(var i=0;i<result.length;i++){
document.getElementById("attrvalue").value+=result[i]+"\n";
}
}

function inc(value){
var len = max.length;
for(var i=len-1; i>=0; i--){
if(max[i] != value[i] + 1){
value[i] = value[i] + 1;
break;
}else{
value[i] = 0;
if(i == 0)
return false;
}
}
return true;
}
//从arrJson获取对应数组
function getArray(value,arry){
var ele = [];
for(var i=0; i<value.length; i++){
ele[i] = arry[i][value[i]];
}
return ele;
}


function load(){
exeArry(arrJson);
}
</script>

</head >

<body οnlοad="load();">
<textarea id="attrvalue" rows="50"></textarea>
</body>
</html>
方法二:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Untitled Document</title>
<script type="text/javascript">
function load() {
var arrJson = [['aa','bb','cc'],['11','22'],['d','e'],['1','2'],['m','n'],['77','88']];
if(arrJson.length > 1) {
var result = toArray(arrJson[0], arrJson[1]);
for(var j=2;j<arrJson.length;j++) {
var tem = new Array();
for(var k=0;k<arrJson[j].length;k++) {
for(var i=0;i<result.length;i++) {
var length = tem.length;
tem[length] = new Array();
for(var l=0;l<result[i].length;l++) {
tem[length][l] = result[i][l];
}
tem[length][tem[length].length] = arrJson[j][k];
}
}
result = tem;
}
//alert(result);
for(var i=0;i<result.length;i++){
document.getElementById("attrvalue").value+=result[i]+"\n";
}
}
}

function toArray(arr1, arr2) {
var len1 = arr1.length;
var len2 = arr2.length;
var result = new Array();
for(var i=0;i<len1;i++) {
for(var j=0;j<len2;j++) {
var length = result.length;
result[length] = new Array();
result[length][0] = arr1[i];
result[length][1] = arr2[j];
}
}
return result;
}
</script>
</head>
<body οnlοad="load();">
<textarea id="attrvalue" rows="50"></textarea>
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值