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比较两个对象是否相等的方法
Feb 06 Javascript
jquery插件splitScren实现页面分屏切换模板特效
Jun 16 Javascript
JS实现带提示的星级评分效果完整实例
Oct 30 Javascript
javascript日期验证之输入日期大于等于当前日期
Dec 13 Javascript
jquery checkbox无法用attr()二次勾选问题的解决方法
Jul 22 Javascript
解决Angular.Js与Django标签冲突的方案
Dec 20 Javascript
那些精彩的JavaScript代码片段
Jan 12 Javascript
JQueryEasyUI框架下的combobox的取值和绑定的方法
Jan 22 Javascript
微信小程序使用input组件实现密码框功能【附源码下载】
Dec 11 Javascript
一次Webpack配置文件的分离实战记录
Nov 30 Javascript
js实现坦克移动小游戏
Oct 28 Javascript
js利用iframe实现选项卡效果
Aug 09 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中file_exists与is_file,is_dir的区别介绍
2012/09/12 PHP
微博短链接算法php版本实现代码
2012/09/15 PHP
PHP中文分词 自动获取关键词介绍
2012/11/13 PHP
php常用字符串处理函数实例分析
2014/11/22 PHP
thinkPHP5.0框架开发规范简介
2017/03/25 PHP
php实现单笔转账到支付宝功能
2018/10/09 PHP
jQuery 使用手册(五)
2009/09/23 Javascript
js实现兼容IE和FF的上下层的移动
2015/05/04 Javascript
jQuery判断checkbox选中状态
2016/05/12 Javascript
详谈js中数组(array)和对象(object)的区别
2017/02/27 Javascript
vue.js的安装方法
2017/05/12 Javascript
js 两个日期比较相差多少天的实例
2017/10/19 Javascript
详解webpack打包vue项目之后生成的dist文件该怎么启动运行
2019/09/06 Javascript
部署vue+Springboot前后端分离项目的步骤实现
2020/05/31 Javascript
Python模拟登录12306的方法
2014/12/30 Python
Python实现监控程序执行时间并将其写入日志的方法
2015/06/30 Python
python的else子句使用指南
2016/02/27 Python
Python按行读取文件的简单实现方法
2016/06/22 Python
Python查找两个有序列表中位数的方法【基于归并算法】
2018/04/20 Python
详解如何在Apache中运行Python WSGI应用
2019/01/02 Python
Python中@property的理解和使用示例
2019/06/11 Python
Python 仅获取响应头, 不获取实体的实例
2019/08/21 Python
Python小程序之在图片上加入数字的代码
2019/11/26 Python
css3中单位px,em,rem,vh,vw,vmin,vmax的区别及浏览器支持情况
2016/12/06 HTML / CSS
HTML5 Canvas 旋转风车绘制
2017/08/18 HTML / CSS
h5使用canvas画布实现手势解锁
2019/01/04 HTML / CSS
最新党员的自我评价分享
2013/11/04 职场文书
食堂采购员岗位职责
2014/03/17 职场文书
幼儿园六一儿童节主持节目串词
2014/03/21 职场文书
春节请假条
2014/04/11 职场文书
公司年底活动方案
2014/08/17 职场文书
社区党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
2015年安全工作总结范文
2015/04/02 职场文书
签订劳动合同通知书
2015/04/16 职场文书
毕业欢送会致辞
2015/07/29 职场文书
全民创业工作总结
2015/08/13 职场文书