对数组或集合中的多个元素重新组合

mofeiovi 2018-03-02 11:34:39
data:共有4组,可2个组成1组,可3个组成1组,4个组成一组。如有数组长度为5,则最大可5个组成一组。
组合规则,每一个组合中sel_data中的od-sel_res只能取一个


示例
od-sel_res

0-2.35,33-2.72,30-2.31
......
0-2.35,30-2.31,10-2.08
......
0-2.35,33-2.72,30-2.31,10-2.08
......

0-2.35,33-6.35,30-2.31
......
0-2.35,33-6.35,30-2.31,10-2.08
......

data:
-------------------------------------------------------------------------------------------------------

{"0":{"issue":"20180130002","sel_data":[{"od":"2.35","sel_res":"0"},{"od":"3.37","sel_res":"5"},{"od":"2.36","sel_res":"21"},{"od":"3.35","sel_res":"10"},{"od":"2.37","sel_res":"11"},{"od":"3.45","sel_res":"22"},{"od":"2.60","sel_res":"32"},{"od":"2.38","sel_res":"33"},{"od":"3.39","sel_res":"13"},{"od":"5.33","sel_res":"310"},{"od":"3.75","sel_res":"113"}]},"1":{"issue":"20180130003","sel_data":[{"od":"2.72","sel_res":"33"},{"od":"6.35","sel_res":"33"}]},"2":{"issue":"20180130004","sel_data":[{"od":"2.31","sel_res":"30"},{"od":"5.28","sel_res":"31"},{"od":"2.38","sel_res":"10"},{"od":"3.59","sel_res":"21"},{"od":"2.77","sel_res":"32"}]},"3":{"issue":"20180130005","sel_data":[{"od":"2.08","sel_res":"10"},{"od":"3.61","sel_res":"21"},{"od":"2.95","sel_res":"32"}]}}



{
"0":{
"issue":"20180130002",
"sel_data":[
{
"od": "2.35",
"sel_res": "0"
},
{
"od": "3.37",
"sel_res": "5"
},
{
"od": "2.36",
"sel_res": "21"
},
{
"od": "3.35",
"sel_res": "10"
},
{
"od": "2.37",
"sel_res": "11"
},
{
"od": "3.45",
"sel_res": "22"
},
{
"od": "2.60",
"sel_res": "32"
},
{
"od": "2.38",
"sel_res": "33"
},
{
"od": "3.39",
"sel_res": "13"
},
{
"od": "5.33",
"sel_res": "310"
},
{
"od": "3.75",
"sel_res": "113"
}
]
},
"1":{
"issue":"20180130003",
"sel_data":[
{
"od": "2.72",
"sel_res": "33"
},
{
"od": "6.35",
"sel_res": "33"
}
]
},
"2":{
"issue":"20180130004",
"sel_data":[
{
"od": "2.31",
"sel_res": "30"
},
{
"od": "5.28",
"sel_res": "31"
},
{
"od": "2.38",
"sel_res": "10"
},
{
"od": "3.59",
"sel_res": "21"
},
{
"od": "2.77",
"sel_res": "32"
}
]
},
"3":{
"issue":"20180130005",
"sel_data":[
{
"od": "2.08",
"sel_res": "10"
},
{
"od": "3.61",
"sel_res": "21"
},
{
"od": "2.95",
"sel_res": "32"
}
]
}
}
...全文
511 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_39670158 2018-03-03
  • 打赏
  • 举报
回复
引用 4 楼 mofeiovi 的回复:
[quote=引用 3 楼 weixin_39670158 的回复:] for(var tmp in jsonArray){ 收集容器.add(tmp); } 话说你想问什么? 如果收集指定个数的话 加个标记 int count = 0; 收集一次 count++;
以data索引为0的sel_data循环取一个做,break再取下一组中sel_data中的,依次来拼接,
data[0][sel_data][0],data[1][sel_data][0],data[2][sel_data][0]
data[0][sel_data][0],data[1][sel_data][0],data[2][sel_data][1]
data[0][sel_data][0],data[1][sel_data][0],data[2][sel_data][2]

data[0][sel_data][0],data[1][sel_data][1],data[2][sel_data][0]
data[0][sel_data][0],data[1][sel_data][1],data[2][sel_data][1]
data[0][sel_data][0],data[1][sel_data][1],data[2][sel_data][2]

data[0][sel_data][0],data[1][sel_data][0],data[3][sel_data][0]
data[0][sel_data][0],data[1][sel_data][0],data[3][sel_data][1]
data[0][sel_data][0],data[1][sel_data][0],data[3][sel_data][2]

data[0][sel_data][1],data[1][sel_data][0],data[2][sel_data][0]
data[0][sel_data][1],data[1][sel_data][0],data[2][sel_data][1]
data[0][sel_data][1],data[1][sel_data][0],data[2][sel_data][2]
如果是4组的,就再依次递增,拼接4个的组合[/quote] 还是不怎么看懂。。 试试递归
mofeiovi 2018-03-03
  • 打赏
  • 举报
回复
引用 3 楼 weixin_39670158 的回复:
for(var tmp in jsonArray){ 收集容器.add(tmp); } 话说你想问什么? 如果收集指定个数的话 加个标记 int count = 0; 收集一次 count++;
以data索引为0的sel_data循环取一个做,break再取下一组中sel_data中的,依次来拼接,
data[0][sel_data][0],data[1][sel_data][0],data[2][sel_data][0]
data[0][sel_data][0],data[1][sel_data][0],data[2][sel_data][1]
data[0][sel_data][0],data[1][sel_data][0],data[2][sel_data][2]

data[0][sel_data][0],data[1][sel_data][1],data[2][sel_data][0]
data[0][sel_data][0],data[1][sel_data][1],data[2][sel_data][1]
data[0][sel_data][0],data[1][sel_data][1],data[2][sel_data][2]

data[0][sel_data][0],data[1][sel_data][0],data[3][sel_data][0]
data[0][sel_data][0],data[1][sel_data][0],data[3][sel_data][1]
data[0][sel_data][0],data[1][sel_data][0],data[3][sel_data][2]

data[0][sel_data][1],data[1][sel_data][0],data[2][sel_data][0]
data[0][sel_data][1],data[1][sel_data][0],data[2][sel_data][1]
data[0][sel_data][1],data[1][sel_data][0],data[2][sel_data][2]
如果是4组的,就再依次递增,拼接4个的组合
weixin_39670158 2018-03-03
  • 打赏
  • 举报
回复
for(var tmp in jsonArray){ 收集容器.add(tmp); } 话说你想问什么? 如果收集指定个数的话 加个标记 int count = 0; 收集一次 count++;
mofeiovi 2018-03-03
  • 打赏
  • 举报
回复
算法大神在哪里,求助
mofeiovi 2018-03-02
  • 打赏
  • 举报
回复
每组中的sel_data,size不固定,此处的示例数据,2个组合为141组,3个组合为300多组,4个也是300多组,data.length为5,则为5个的组合,组合元素个数以length递增

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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