js 数组排列组合

chen365 2012-03-01 09:03:10

var arr={1:2:3,a:b:c,x:y:z,...,n}

怎么提到

a[1] = {1,a,x}
a[2] = {1,a,y}
a[3] = {1,a,z}
.
.
.
.
...全文
181 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
chen365 2012-03-02
  • 打赏
  • 举报
回复
自己在网上找到了一个方法。
function doExchange(doubleArrays){
var len=doubleArrays.length;
if(len>=2){
var len1=doubleArrays[0].length;
var len2=doubleArrays[1].length;
var newlen=len1*len2;
var temp=new Array(newlen);
var index=0;
for(var i=0;i<len1;i++){
for(var j=0;j<len2;j++){
temp[index]=doubleArrays[0][i]+doubleArrays[1][j];
index++;
}
}
var newArray=new Array(len-1);
if(len>2){
newArray[1]=doubleArrays[2];
}
newArray[0]=temp;
return doExchange(newArray);
}
else{
return doubleArrays[0];
}
}

//调用示例:
function test(){
var temparr=[
["XXL","XL"],
["红色","白色"]
];
var ret = doExchange(temparr);
document.write("共有:" + ret.length + "种组合!<br/>");
for (var i = 0; i < ret.length; i++) {
document.write(ret[i]+"<br/>");
}
}
AI非主流文文 2012-03-02
  • 打赏
  • 举报
回复
var size = "xl,xxl".split(",");
var color = "red,white".split(",");
for(var i=0;i<size.length;i++)
for(var j=0;j<color.length;j++)
alert(size[i] + "," + color[j]);

办法很土,鄙视我一把=.=
chen365 2012-03-02
  • 打赏
  • 举报
回复
和这个问题是一样的。
http://topic.csdn.net/u/20080611/12/761a5612-3e73-4d61-b41a-c97706ad0dc7.html
chen365 2012-03-02
  • 打赏
  • 举报
回复
呵呵。。没有表述真不好意思。
应该是这样子的。
比如衣服有如下规格

大小:xl,xxl
颜色:红色,白色

怎么得到
xl,红色
xl,白色
xxl,红色
xxl,白色
似梦飞花 2012-03-01
  • 打赏
  • 举报
回复
没见过这样的表达方式啊 呵呵
p2227 2012-03-01
  • 打赏
  • 举报
回复
语法错了,需求也不明确
Acesidonu 2012-03-01
  • 打赏
  • 举报
回复
var arr={1:2:3,a:b:c,x:y:z,...,n}
这个格式不对啊

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧