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创建命名空间(namespace)的最简实现
Dec 11 Javascript
jQuery Select(单选) 模拟插件 V1.3.62 改进版
Jul 17 Javascript
终于解决了IE8不支持数组的indexOf方法
Apr 03 Javascript
使用 Node.js 做 Function Test实现方法
Oct 25 Javascript
调试代码导致IE出错的避免方法
Apr 04 Javascript
分离与继承的思想实现图片上传后的预览功能:ImageUploadView
Apr 07 Javascript
JS实现太极旋转思路分析
Dec 09 Javascript
AngularJS中$http的交互问题
Mar 29 Javascript
学习使用Bootstrap栅格系统
May 11 Javascript
cropper js基于vue的图片裁剪上传功能的实现代码
Mar 01 Javascript
vue数据响应式原理知识点总结
Feb 16 Javascript
JS禁用右键、禁用Ctrl+u、禁用Ctrl+s、禁用F12的实现代码
Dec 01 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常用函数 推荐收藏保存
2010/02/21 PHP
如何把php5.3版本升级到php5.4或者php5.5
2015/07/31 PHP
CI(Codeigniter)的Setting增强配置类实例
2016/01/06 PHP
PHP内存缓存功能memcached示例
2016/10/19 PHP
PHP ajax+jQuery 实现批量删除功能实例代码小结
2018/12/06 PHP
基于JQUERY的两个ListBox子项互相调整的实现代码
2011/05/07 Javascript
js关闭当前页面(窗口)的几种方式总结
2013/03/05 Javascript
js仿百度贴吧验证码特效实例代码
2014/01/16 Javascript
jQuery中on()方法用法实例
2015/01/19 Javascript
整理AngularJS中的一些常用指令
2015/06/16 Javascript
2016年最热门的15 款代码语法高亮工具,美化你的代码
2016/01/06 Javascript
Angular-Touch库用法示例
2016/12/22 Javascript
用jQuery将JavaScript对象转换为querystring查询字符串的方法
2018/11/12 jQuery
微信小程序HTTP请求从0到1封装
2019/09/09 Javascript
Vue中jsx不完全应用指南小结
2019/11/01 Javascript
在vue中使用vuex,修改state的值示例
2019/11/08 Javascript
javascript设计模式 ? 解释器模式原理与用法实例分析
2020/04/17 Javascript
js节流防抖应用场景,以及在vue中节流防抖的具体实现操作
2020/09/21 Javascript
跟老齐学Python之有容乃大的list(3)
2014/09/15 Python
Python实现简单拆分PDF文件的方法
2015/07/30 Python
pygame游戏之旅 按钮上添加文字的方法
2018/11/21 Python
基于wxPython的GUI实现输入对话框(1)
2019/02/27 Python
django-filter和普通查询的例子
2019/08/12 Python
python二进制读写及特殊码同步实现详解
2019/10/11 Python
使用Pycharm(Python工具)新建项目及创建Python文件的教程
2020/04/26 Python
新西兰珠宝品牌:Michael Hill
2017/09/16 全球购物
欧舒丹加拿大官网:L’Occitane加拿大
2017/10/29 全球购物
成人继续教育实施方案
2014/03/01 职场文书
婚前协议书怎么写
2014/04/15 职场文书
交通工程专业推荐信
2014/09/06 职场文书
政风行风评议整改方案
2014/09/15 职场文书
群众路线组织生活会发言材料
2014/10/17 职场文书
业务员工作态度散漫检讨书
2014/11/02 职场文书
第二次离婚起诉书
2015/05/18 职场文书
个人合作协议范本
2015/08/06 职场文书
Python趣味挑战之用pygame实现简单的金币旋转效果
2021/05/31 Python