JS使用循环获得不定维度笛卡尔积

使用循环获得不定维度笛卡尔积:

参考http://blog.csdn.net/buptdavid/article/details/45918647改造

function testing()
            {
                var d = [
                    ["a1", "a2", "a3"],
                    ["b1", "b2"],
                    ["c1", "c2", "c3", "c4"],
                    ["d1", "d2", "d3", "d4", "d5"],
                    ["e1", "e2", "e3", "e4", "e5","e6"],
                ];
                var total = 1;
                for (var i = 0; i < d.length; i++)
                {
                    total *= d[i].length;
                }
                var e = [];
                var itemLoopNum = 1;
                var loopPerItem = 1;
                var now = 1;
                for (var i = 0; i < d.length; i++) {
                    now *= d[i].length;
                    var index = 0;
                    var currentSize = d[i].length;
                    itemLoopNum = total / now;
                    loopPerItem = total / (itemLoopNum * currentSize);
                    var myIndex = 0;
                    for (var j = 0; j < d[i].length; j++)
                    {
                        for (var z = 0 ; z < loopPerItem; z++)
                        {
                            if (myIndex == d[i].length) {
                                myIndex = 0;
                            }
                            for (var k = 0; k < itemLoopNum; k++)
                            {
                                e[index] = (e[index] == null ? "" :e[index] + ",") + d[i][myIndex];
                                index++;
                            }
                            myIndex++
                        }
                    }
                }
                for (var l = 0; l < e.length; l++)
                {
                    console.log(e[l]);
                }
            }
时间: 2024-10-13 11:43:35

JS使用循环获得不定维度笛卡尔积的相关文章

JS基础——循环很重要

介绍循环之前,首先要说一下同样很重要的if-else结构,switch-case结构 ①if-else结构 if(判断条件) { 条件为true时执行 } else{ 条件为false时执行 } ②if-else-if结构(阶梯if) if(条件一){ 条件一成立 } else if( 条件二){ 条件一不成立&&条件二成立 (else-if部分可以有多个) } else{ 条件一不成立&&条件二不成立 } ③嵌套if结构 结构写法 if(条件一){ 条件一成立 if(条件

关于JS的循环和函数,由入门到放弃

1.条件语句if if 语句 if 语句是 ECMAScript 中最常用的语句之一,事实上在许多计算机语言中都是如此. if 语句的语法: if (condition) statement1 else statement2 其中 condition 可以是任何表达式,计算的结果甚至不必是真正的 boolean 值,ECMAScript 会把它转换成 boolean 值. 如果条件计算结果为 true,则执行 statement1:如果条件计算结果为 false,则执行 statement2.

JS中循环的多种使用方式

JS中循环的遍历 在js中我们一般都使用for循环,但是这样的代码见的多了,总是感觉到审美疲劳,而且有更好的方式可以替代for循环,比如js的foreach和jquery的each. 我们看一行代码,这是一个多选框(html代码) <input type="checkbox" name="senceIds" lay-skin="primary" value='1' title='全自助黄金卡' checked /> <input

js事件循环机制辨析

?对于新接触js语言的人来说,最令人困惑的大概就是事件循环机制了.最开始这也困惑了我好久,花了我几个月时间通过书本,打代码,查阅资料不停地渐进地理解他.接下来我想要和大家分享一下,虽然可能有些许错误的地方,希望大家不吝赐教,感谢感谢. ?这是所涉及的知识点: 观察者模式 js的事件循环机制 js事件循环机制优缺点及与多线程的比较 观察者模式 ?js的事件循环机制是基于观察者模式的,而跟观察者模式相对应的是轮询,我们先来说说轮询的原理. ?我们将轮询映射在现实世界中即为:B不停到A的房间观察房间里

node.js事件循环 event loop

Nodejs事件循环 (event loop) node.js 事件循环的概念 当node.js 启动的时候会初始化eventloop ,每一个evnet loop 都会包含如下6个循环阶段,node.js 事件循环和浏览器事件循环完全不一样. 官网文档:https://nodejs.org/zh-cn/docs/guides/event-loop-timers-and-nexttick/ timers pending callbacks (I/O callbakcs) idle, prepar

PHP和JS在循环、条件判断中的不同之处

一.条件判断: php中算  false 的情况 1. boolean:false 2. 整形:0 3.浮点型:0 4.字符串:"" "0"(其他都对) 5.空数组 6.空对象为真(只在php4算false,其他版本都算true) 7.null和尚未定义的变量 8.所有资源都算对,除php4,所有对象也算对 JS中if()中的表达式 1. Boolean: true 真 false 假 2. String:非空字符串为真 空字符串为假 3. Null/NaN/Und

JS的循环、复杂运算符

一.循环语句 特点:可以重复完成同样的事情 1.while(条件语句/boolean){ 重复执行的代码块 } while的两种写法 var a= prompt("请输入第一个数"); var b= prompt("请输入第二个数"); var i =a>b ?a:b;  //三目运算法 //  while(i%a!==0 ||i%b!==0){ //      i++; //  } while(true){ if(i%a!==0 && i%b

js其他循环

一.while循环可以做死循环,没有固定次数的.①while(只写一个条件){}②while(truse)var a = 0;while(truse)先判断括号里的条件,后过来执行循环体.不满足不循环.{a++;if(a==5){baeak;}}二.do alert循环do{alert("aa");}while(truse) 三.数据存储--数组1.强类型语言数组:①同一种类型的数据存粗的集合.(在内存中是连续的)②定义的时候需要指定长度.另外一种方式:集合:也是不连续的也是任意类型.

Node.js 事件循环

原文:https://github.com/nodejs/node/blob/master/doc/topics/event-loop-timers-and-nexttick.md 什么是事件循环(Event Loop) 事件循环能让 Node.js 执行非阻塞 I/O 操作 -- 尽管JavaScript事实上是单线程的 -- 通过在可能的情况下把操作交给操作系统内核来实现. 由于大多数现代系统内核是多线程的,内核可以处理后台执行的多个操作.当其中一个操作完成的时候,内核告诉 Node.js,