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各浏览器中option元素的表现差异
Apr 07 Javascript
document.addEventListener使用介绍
Mar 07 Javascript
JavaScript 变量、作用域及内存
Apr 08 Javascript
jQuery实现滚动切换的tab选项卡效果代码
Aug 26 Javascript
深入理解jquery自定义动画animate()
May 24 Javascript
javascript和jQuery实现网页实时聊天的ajax长轮询
Jul 20 Javascript
javascript 闭包详解及简单实例应用
Dec 31 Javascript
angularjs实现猜大小功能
Oct 23 Javascript
vue中v-model动态生成的实例详解
Oct 27 Javascript
响应式框架Bootstrap栅格系统的实例
Dec 19 Javascript
详谈vue+webpack解决css引用图片打包后找不到资源文件的问题
Mar 06 Javascript
js防抖函数和节流函数使用场景和实现区别示例分析
Apr 11 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扩展
2013/06/13 PHP
解析linux下安装memcacheq(mcq)全过程笔记
2013/06/27 PHP
基于PHP实现的事件机制实例分析
2015/06/18 PHP
php防止用户重复提交表单
2015/11/02 PHP
thinkphp3.2.3版本的数据库增删改查实现代码
2016/09/22 PHP
laravel 关联关系遍历数组的例子
2019/10/10 PHP
Javascript调用XML制作连动下拉列表框
2006/06/25 Javascript
图像替换新技术 状态域方法
2010/01/28 Javascript
jQuery 获取对象 定位子对象
2010/05/31 Javascript
Javascript查询DBpedia小应用实例学习
2013/03/07 Javascript
jQuery中setTimeout的几种使用方法小结
2013/04/07 Javascript
js数组方法扩展实现数组统计函数
2014/04/09 Javascript
jQuery ajax serialize() 方法使用示例
2014/11/02 Javascript
使用jquery获取url及url参数的简单实例
2016/06/14 Javascript
老生常谈JQuery data方法的使用
2016/09/09 Javascript
JavaScript数据结构之二叉树的删除算法示例
2017/04/13 Javascript
js上传图片预览的实现方法
2017/05/09 Javascript
解决VUEX刷新的时候出现数据消失
2017/07/03 Javascript
seajs中模块依赖的加载处理实例分析
2017/10/10 Javascript
bootstrap响应式工具使用详解
2017/11/29 Javascript
用js编写留言板
2020/03/17 Javascript
分享给Python新手们的几道简单练习题
2017/09/21 Python
python实现zabbix发送短信脚本
2018/09/17 Python
python 多线程中join()的作用
2020/10/29 Python
python openssl模块安装及用法
2020/12/06 Python
Python如何实现Paramiko的二次封装
2021/01/30 Python
AmazeUI 加载进度条的实现示例
2020/08/20 HTML / CSS
白宫黑市官网:White House Black Market
2016/11/17 全球购物
西班牙英格列斯百货法国官网:El Corte Inglés法国
2017/07/09 全球购物
简述安装Slackware Linux系统的过程
2012/01/12 面试题
刘胡兰的英雄事迹材料
2014/02/11 职场文书
水电工岗位职责
2014/02/12 职场文书
手机被没收检讨书
2014/02/22 职场文书
赡养老人协议书
2014/04/21 职场文书
《小小的船》教学反思
2016/02/18 职场文书
MongoDB日志切割的三种方式总结
2021/09/15 MongoDB