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的开源工具PACKER2.0.2
Nov 04 Javascript
jquery 操作日期、星期、元素的追加的实现代码
Feb 07 Javascript
js/html光标定位的实现代码
Sep 23 Javascript
解析页面加载与js函数的执行 onload or ready
Dec 12 Javascript
js的image onload事件使用遇到的问题
Jul 15 Javascript
javascript中mouseover、mouseout使用详解
Jul 19 Javascript
JS实现自动固定顶部的悬浮菜单栏效果
Sep 16 Javascript
jQuery+CSS实现一个侧滑导航菜单代码
May 09 Javascript
jquery一键控制checkbox全选、反选或全不选
Oct 16 jQuery
Vue实现开心消消乐游戏算法
Oct 22 Javascript
js中Map和Set的用法及区别实例详解
Feb 15 Javascript
JS封装cavans多种滤镜组件
Feb 15 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 DataGrid 实现代码
2009/08/12 PHP
PHP 图片上传实现代码 带详细注释
2010/04/29 PHP
php将图片保存为不同尺寸图片的图片类实例
2015/03/30 PHP
PHP学习笔记(三):数据类型转换与常量介绍
2015/04/17 PHP
PHP fopen中文文件名乱码问题解决方案
2020/10/28 PHP
PHP获取php,mysql,apche的版本信息及更多服务器信息
2021/03/09 PHP
jquery tools 系列 scrollable(2)
2009/09/06 Javascript
关于js拖拽上传 [一个拖拽上传修改头像的流程]
2011/07/13 Javascript
js函数调用的方式
2014/05/06 Javascript
利用angular.copy取消变量的双向绑定与解析
2016/11/25 Javascript
Jquery给当前页或者跳转后页面的导航栏添加选中后样式的实例
2016/12/08 Javascript
Vue + Webpack + Vue-loader学习教程之功能介绍篇
2017/03/14 Javascript
security.js实现的RSA加密功能示例
2018/06/06 Javascript
浅谈微信小程序之官方UI框架we-ui使用教程
2018/08/20 Javascript
JS与jQuery判断文本框还剩多少字符可以输入的方法
2018/09/01 jQuery
js序列化和反序列化的使用讲解
2019/01/19 Javascript
Vue配置marked链接添加target="_blank"的方法
2019/07/19 Javascript
layui 对弹窗 form表单赋值的实现方法
2019/09/04 Javascript
three.js 制作动态二维码的示例代码
2020/07/31 Javascript
Vue项目中使用mock.js的完整步骤
2021/01/12 Vue.js
Python实现的本地文件搜索功能示例【测试可用】
2018/05/30 Python
python采集微信公众号文章
2018/12/20 Python
django模板加载静态文件的方法步骤
2019/03/01 Python
对PyQt5中的菜单栏和工具栏实例详解
2019/06/20 Python
python实现读取excel文件中所有sheet操作示例
2019/08/09 Python
Python面向对象封装操作案例详解 II
2020/01/02 Python
Python 实现自动完成A4标签排版打印功能
2020/04/09 Python
27个经典Linux面试题及答案,你知道几个?
2013/01/10 面试题
解释一下钝化(Swap out)
2016/12/26 面试题
机房搬迁方案
2014/05/01 职场文书
开学典礼策划方案
2014/05/28 职场文书
2015年财政所工作总结
2015/04/25 职场文书
雷锋电影观后感
2015/06/10 职场文书
jQuery实现影院选座订座效果
2021/04/13 jQuery
vue使用refs获取嵌套组件中的值过程
2022/03/31 Vue.js
python区块链实现简版工作量证明
2022/05/25 Python