C#/JS 获取二维数组组合
C#获取二维数组组合
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace HF.SHOP.WebSite { public partial class Demo : System.Web.UI.Page { List<List< string >> P_StringLL = new List<List< string >>(); List< string > P_tmpStrL = new List< string >(); protected void Page_Load( object sender, EventArgs e) { List< string > al = new List< string >(); al.Add( "红色" ); al.Add( "黑色" ); al.Add( "紫色" ); al.Add( "白色" ); P_StringLL.Add(al); al = new List< string >(); al.Add( "小号" ); al.Add( "中号" ); al.Add( "大号" ); al.Add( "加大号" ); P_StringLL.Add(al); al = new List< string >(); al.Add( "男同志" ); al.Add( "女同志" ); P_StringLL.Add(al); GroupArray( "" , P_StringLL, 0); StringBuilder sb = new StringBuilder(); foreach ( string str in P_tmpStrL) { sb.AppendLine(str + "<br/>" ); } Label1.Text = "总共有:" + P_tmpStrL.Count.ToString() + "种组合" ; Label2.Text = sb.ToString(); } //组合计算 void GroupArray( string tmpStr, List<List< string >> strLL, int index) { int count = strLL.Count; if (count <= index) { if (tmpStr.Length > 0) { P_tmpStrL.Add(tmpStr); } return ; } List< string > strL = strLL[index]; foreach ( string str in strL) { GroupArray(tmpStr + str, strLL, index + 1); } } } } |
JS代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | <%@ Page Language= "C#" AutoEventWireup= "true" CodeBehind= "Demo.aspx.cs" Inherits= "HF.SHOP.WebSite.Demo" %> <!DOCTYPE html> <html xmlns= "http://www.w3.org/1999/xhtml" > <head runat= "server" > <meta http-equiv= "Content-Type" content= "text/html; charset=utf-8" /> <title></title> <script src= "UIResources/scripts/jquery.min.2.0.0.js" ></script> </head> <body> <form id= "form1" runat= "server" > <div> <asp:Label ID= "Label1" runat= "server" Text= "" ></asp:Label><br /> <asp:Label ID= "Label2" runat= "server" Text= "" ></asp:Label> <div id= "cou" ></div> <ul id= "list" > </ul> </div> </form> <script type= "text/javascript" > var array = [[ '红色' , '黑色' , '白色' ], [ '小号' , '中号' , '加大' ], [ '男' , '女' ]]; var results = new Array(); //创建一个数组 var len = array.length; var indexs = {}; $(document).ready( function () { GetResults(-1); $( "#cou" ).html( "共有" + results.length + "种组合;<br/>" ); for ( var a = 0; a < results.length; a++) { $( "#list" ).append( "<li>" + results[a] + "</li>" ); } }); function GetResults(start) { start++; if (start > len - 1) { return ; } if (!indexs[start]) { indexs[start] = 0; } if (!(array[start] instanceof Array)) { array[start] = [array[start]]; } for (indexs[start] = 0; indexs[start] < array[start].length; indexs[start]++) { GetResults(start); if (start == len - 1) { var temp = []; for ( var i = len - 1; i >= 0; i--) { if (!(array[start - i] instanceof Array)) { array[start - i] = [array[start - i]]; } temp.push(array[start - i][indexs[start - i]]); } results.push(temp); } } } </script> </body> </html> |
作者:郑某人
出处:http://jsonzheng.cnblogs.com
欢迎转载或分享,但请务必声明文章出处。如果文章对您有帮助,希望你能推荐或关注。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 《HelloGitHub》第 108 期
· Windows桌面应用自动更新解决方案SharpUpdater5发布
· 我的家庭实验室服务器集群硬件清单
· C# 13 中的新增功能实操
· Supergateway:MCP服务器的远程调试与集成工具