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 相关文章推荐
iframe的onload在Chrome/Opera中执行两次Bug的解决方法
Mar 17 Javascript
javascript获取下拉列表框当中的文本值示例代码
Jul 31 Javascript
JavaScript中json使用自己总结
Aug 13 Javascript
jquery ajax 调用失败的原因示例介绍
Sep 27 Javascript
用js正确判断用户名cookie是否存在的方法
Jan 28 Javascript
JS实现的Select三级下拉菜单代码
Aug 20 Javascript
Angular 根据 service 的状态更新 directive
Apr 03 Javascript
js自定义弹框插件的封装
Aug 24 Javascript
jQuery实现全选、反选和不选功能
Aug 16 jQuery
详解Angular2学习笔记之Html属性绑定
Jan 03 Javascript
JS解析后台返回的JSON格式数据实例
Aug 06 Javascript
解决ant design vue中树形控件defaultExpandAll设置无效的问题
Oct 26 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 文件上传代码(限制jpg文件)
2010/01/05 PHP
php面象对象数据库操作类实例
2014/12/02 PHP
php array_multisort 对数组进行排序详解及实例代码
2016/10/27 PHP
ThinkPHP模板标签eq if 中区分0,null,false的方法
2017/03/24 PHP
JavaScript语言中的Literal Syntax特性分析
2007/03/08 Javascript
js下弹出窗口的变通
2007/04/18 Javascript
jquery 事件对象属性小结
2010/04/27 Javascript
基于jquery循环map功能的代码
2011/02/26 Javascript
了解一点js的Eval函数
2012/07/26 Javascript
使用javascipt---实现二分查找法
2013/04/10 Javascript
jquery form 加载数据示例
2014/04/21 Javascript
javascript使用avalon绑定实现checkbox全选
2015/05/06 Javascript
修改js confirm alert 提示框文字的简单实例
2016/06/10 Javascript
浅谈JavaScript 数据属性和访问器属性
2016/09/01 Javascript
JS实现的样式切换功能tableCSS实例
2016/12/30 Javascript
详解JS中的快速排序与冒泡
2017/01/10 Javascript
Angular指令之restict匹配模式的详解
2017/07/27 Javascript
node.js基于fs模块对系统文件及目录进行读写操作的方法详解
2017/11/10 Javascript
对node.js中render和send的用法详解
2018/05/14 Javascript
详解JS取出两个数组中的不同或相同元素
2019/03/20 Javascript
解决vue v-for src 图片路径问题 404
2019/11/12 Javascript
Pycharm学习教程(7)虚拟机VM的配置教程
2017/05/04 Python
浅谈Python中的可变对象和不可变对象
2017/07/07 Python
通过Django Admin+HttpRunner1.5.6实现简易接口测试平台
2020/11/11 Python
详解python中的三种命令行模块(sys.argv,argparse,click)
2020/12/15 Python
Python+kivy BoxLayout布局示例代码详解
2020/12/28 Python
浅析python连接数据库的重要事项
2021/02/22 Python
利用html5 canvas动态画饼状图的示例代码
2018/04/02 HTML / CSS
iPad和Surface Pro蓝牙键盘:Brydge
2018/11/10 全球购物
婚鞋、新娘鞋、礼服鞋、童鞋:Nina Shoes
2019/09/04 全球购物
荷兰天然和有机产品网上商城:BigGreenSmile.nl
2020/07/26 全球购物
优秀员工表扬信
2014/01/17 职场文书
学生会宣传部部长竞选演讲稿
2014/04/25 职场文书
股东授权委托书范本
2014/09/13 职场文书
2015年小学开学寄语
2015/02/27 职场文书
详解NodeJS模块化
2021/06/15 NodeJs