javascript笛卡尔积算法实现方法


Posted in Javascript onApril 08, 2015

本文实例讲述了javascript笛卡尔积算法实现方法。分享给大家供大家参考。具体分析如下:

这里可根据给的对象或者数组生成笛卡尔积

//笛卡儿积组合
function descartes(list)
{
  //parent上一级索引;count指针计数
  var point = {};
  var result = [];
  var pIndex = null;
  var tempCount = 0;
  var temp  = [];
  //根据参数列生成指针对象
  for(var index in list)
  {
    if(typeof list[index] == 'object')
    {
      point[index] = {'parent':pIndex,'count':0}
      pIndex = index;
    }
  }
  //单维度数据结构直接返回
  if(pIndex == null)
  {
    return list;
  }
  //动态生成笛卡尔积
  while(true)
  {
    for(var index in list)
    {
      tempCount = point[index]['count'];
      temp.push(list[index][tempCount]);
    }
    //压入结果数组
    result.push(temp);
    temp = [];
    //检查指针最大值问题
    while(true)
    {
      if(point[index]['count']+1 >= list[index].length)
      {
        point[index]['count'] = 0;
        pIndex = point[index]['parent'];
        if(pIndex == null)
        {
          return result;
        }
        //赋值parent进行再次检查
        index = pIndex;
      }
      else
      {
        point[index]['count']++;
        break;
      }
    }
  }
}

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
菜鸟javascript基础整理1
Dec 06 Javascript
autoIMG 基于jquery的图片自适应插件代码
Mar 12 Javascript
网页实时显示服务器时间和javscript自运行时钟
Jun 09 Javascript
jquery实现右键菜单插件
Mar 29 Javascript
JavaScript 面向对象与原型
Apr 10 Javascript
JavaScript实现为input与textarea自定义hover,focus效果的方法
Aug 21 Javascript
Bootstrap轮播插件中图片变形的终极解决方案 使用jqthumb.js
Jul 10 Javascript
jquery插件锦集【推荐】
Dec 16 Javascript
理解javascript中的Function.prototype.bind的方法
Feb 03 Javascript
详解用js代码触发dom事件的实现方案
Jun 10 Javascript
VUE中V-IF条件判断改变元素的样式操作
Aug 09 Javascript
解决nuxt 自定义全局方法,全局属性,全局变量的问题
Nov 05 Javascript
JavaScript获取指定元素位置的方法
Apr 08 #Javascript
javascript跨域原因以及解决方案分享
Apr 08 #Javascript
JavaScript 里的类数组对象
Apr 08 #Javascript
cookie的secure属性详解
Apr 08 #Javascript
jQuery简单tab切换效果实现方法
Apr 08 #Javascript
JavaScript中的普通函数与构造函数比较
Apr 07 #Javascript
jQuery控制cookie过期时间的方法
Apr 07 #Javascript
You might like
php中$this->含义分析
2009/11/29 PHP
关于UEditor编辑器远程图片上传失败的解决办法
2012/08/31 PHP
PHP中如何定义和使用常量
2013/02/28 PHP
PHP中对各种加密算法、Hash算法的速度测试对比代码
2014/07/08 PHP
yii2 modal弹窗之ActiveForm ajax表单异步验证
2016/06/13 PHP
Laravel中日期时间处理包Carbon的简单使用
2017/09/21 PHP
jQuery html()等方法介绍
2009/11/18 Javascript
JavaScript DOM学习第一章 W3C DOM简介
2010/02/19 Javascript
JavaScript高级程序设计 阅读笔记(十三) js定义类或对象
2012/08/14 Javascript
jquery自定义类似$.ajax()的方法实现代码
2013/08/13 Javascript
jQuery中bind与live的用法及区别小结
2014/01/27 Javascript
使用jQueryMobile实现滑动翻页效果的方法
2015/02/04 Javascript
用window.onerror捕获并上报Js错误的方法
2016/01/27 Javascript
jQuery动态添加
2016/04/07 Javascript
Java遍历集合方法分析(实现原理、算法性能、适用场合)
2016/04/25 Javascript
JS触摸与手势事件详解
2017/05/09 Javascript
Vue中使用的EventBus有生命周期
2018/07/12 Javascript
Vue-router的使用和出现空白页,路由对象属性详解
2018/09/03 Javascript
angularJs中$scope数据序列化的实例
2018/09/30 Javascript
node中IO以及定时器优先级详解
2019/05/10 Javascript
如何在Angular8.0下使用ngx-translate进行国际化配置
2019/07/24 Javascript
JS中比较两个Object数组是否相等方法实例
2019/11/11 Javascript
[01:18:43]2014 DOTA2华西杯精英邀请赛5 24 iG VS DK
2014/05/25 DOTA
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 KG VS OG
2018/03/30 DOTA
[01:00:11]DOTA2-DPC中国联赛 正赛 CDEC vs DLG BO3 第一场 2月7日
2021/03/11 DOTA
python实现自动解数独小程序
2019/01/21 Python
基于python的ini配置文件操作工具类
2019/04/24 Python
python3实现小球转动抽奖小游戏
2020/04/15 Python
python库matplotlib绘制坐标图
2019/10/18 Python
Big Green Smile德国网上商店:提供各种天然产品
2018/05/23 全球购物
UNIX文件类型
2013/08/29 面试题
护士个人简历自荐信
2013/10/18 职场文书
运动会邀请函范文
2014/01/31 职场文书
小学美术兴趣小组活动总结
2014/07/07 职场文书
民主生活会汇报材料
2014/12/15 职场文书
保安辞职申请书应该怎么写?
2019/07/15 职场文书