首页 > 代码库 > C#/JS 获取二维数组组合
C#/JS 获取二维数组组合
C#获取二维数组组合
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代码:
<%@ 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="http://www.mamicode.com/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>
C#/JS 获取二维数组组合
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。