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 相关文章推荐
跨浏览器的设置innerHTML方法
Sep 18 Javascript
jQuery 隔行换色 支持键盘上下键,按Enter选定值
Aug 02 Javascript
Jquery中dialog属性小记
Sep 03 Javascript
jquery获得页面元素的坐标值实现思路及代码
Apr 15 Javascript
jQuery position() 函数详解以及jQuery中position函数的应用
Dec 14 Javascript
js实现无缝滚动图(可控制当前滚动的方向)
Feb 22 Javascript
详解基于 Nuxt 的 Vue.js 服务端渲染实践
Oct 24 Javascript
JS对象与json字符串相互转换实现方法示例
Jun 14 Javascript
vue-router重定向和路由别名的使用讲解
Jan 19 Javascript
javascript设计模式 ? 代理模式原理与用法实例分析
Apr 16 Javascript
Vue自定义render统一项目组弹框功能
Jun 07 Javascript
jQuery实现全选按钮
Jan 01 jQuery
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中date()日期函数有关参数整理
2011/07/19 PHP
关于更改Zend Studio/Eclipse代码风格主题的介绍
2013/06/23 PHP
Smarty中调用FCKeditor的方法
2014/10/27 PHP
php cookie 详解使用实例
2016/11/03 PHP
详谈PHP面向对象中常用的关键字和魔术方法
2017/02/04 PHP
php实现session共享的实例方法
2019/09/19 PHP
laravel excel 上传文件保存到本地服务器功能
2019/11/14 PHP
php gethostbyname获取域名ip地址函数详解
2010/01/24 Javascript
鼠标滑上去后图片放大浮出效果的js代码
2011/05/28 Javascript
自己动手制作jquery插件之自动添加删除行的实现
2011/10/13 Javascript
javascript 基础篇3 类,回调函数,内置对象,事件处理
2012/03/14 Javascript
写自已的js类库需要的核心代码
2012/07/16 Javascript
模拟一个类似百度google的模糊搜索下拉列表
2014/04/15 Javascript
javascript动态创建及删除元素的方法
2014/12/22 Javascript
JavaScript 异步调用
2017/10/25 Javascript
js实现带搜索功能的下拉框
2020/01/11 Javascript
[48:00]完美世界DOTA2联赛循环赛 Forest vs Inki BO2第二场 11.04
2020/11/04 DOTA
python访问sqlserver示例
2014/02/10 Python
举例讲解Python中metaclass元类的创建与使用
2016/06/30 Python
python中import学习备忘笔记
2017/01/24 Python
python reduce 函数使用详解
2017/12/05 Python
取numpy数组的某几行某几列方法
2018/04/03 Python
tensorflow学习笔记之简单的神经网络训练和测试
2018/04/15 Python
利用python-docx模块写批量生日邀请函
2019/08/26 Python
Python3常见函数range()用法详解
2019/12/30 Python
python中实现栈的三种方法
2020/12/19 Python
CSS3弹性盒模型开发笔记(一)
2016/04/26 HTML / CSS
html5 sessionStorage会话存储_动力节点Java学院整理
2017/07/06 HTML / CSS
基于HTML5的WebGL经典3D虚拟机房漫游动画
2017/11/15 HTML / CSS
Perfumetrader荷兰:香水、化妆品和护肤品在线商店
2017/09/15 全球购物
科茨沃尔德家居商店:Scotts of Stow
2018/06/29 全球购物
.NET面试问题集
2015/12/08 面试题
售房协议书
2014/08/19 职场文书
小时代观后感
2015/06/10 职场文书
高中运动会广播稿
2015/08/19 职场文书
tomcat正常启动但网页却无法访问的几种解决方法
2022/05/06 Servers