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 相关文章推荐
js写一个字符串转成驼峰的实例
Jun 21 Javascript
JS中图片缓冲loading技术的实例代码
Aug 29 Javascript
Javascript学习笔记之数组的遍历和 length 属性
Nov 23 Javascript
jQuery 遍历函数详解
Jul 05 Javascript
javascript基本算法汇总
Mar 09 Javascript
JS简单获取日期相差天数的方法
Apr 24 Javascript
vue.js移动端app实战1:初始配置详解
Jul 24 Javascript
vue-router 导航钩子的具体使用方法
Aug 31 Javascript
js实现鼠标移动到图片产生遮罩效果
Oct 21 Javascript
微信小程序工具函数封装
Oct 28 Javascript
vue和iview实现Scroll 数据无限滚动功能
Oct 31 Javascript
微信小程序实现日历小功能
Nov 18 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
Flash空降上海 化身大魔王接受挑战
2020/03/02 星际争霸
深入理解:单一入口、MVC、ORM、CURD、ActiveRecord概念
2013/06/06 PHP
解析php类的注册与自动加载
2013/07/05 PHP
PHP动态编译出现Cannot find autoconf的解决方法
2014/11/05 PHP
php支付宝APP支付功能
2020/07/29 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
2020/02/15 PHP
如何在Laravel之外使用illuminate组件详解
2020/09/20 PHP
页面中iframe相互传值传参
2009/12/13 Javascript
javascript与asp.net(c#)互相调用方法
2009/12/13 Javascript
JavaScript控制table某列不显示的方法
2015/03/16 Javascript
JS常用函数和常用技巧小结
2016/10/15 Javascript
基于Vue.js实现简单搜索框
2020/03/26 Javascript
jQuery实现的简单悬浮层功能完整实例
2017/01/23 Javascript
JS实现的模仿QQ头像资料卡显示与隐藏效果
2017/04/07 Javascript
js实现数组和对象的深浅拷贝
2017/09/30 Javascript
NodeJS如何实现同步的方法示例
2018/08/24 NodeJs
react项目实践之webpack-dev-serve
2018/09/14 Javascript
JavaScript使用百度ECharts插件绘制饼图操作示例
2019/11/26 Javascript
Node.js API详解之 tty功能与用法实例分析
2020/04/27 Javascript
python根据文件大小打log日志
2014/10/09 Python
python获取远程图片大小和尺寸的方法
2015/03/26 Python
Python使用pickle模块存储数据报错解决示例代码
2018/01/26 Python
python实现键盘控制鼠标移动
2020/11/27 Python
python获取全国城市pm2.5、臭氧等空气质量过程解析
2019/10/12 Python
Flask框架 CSRF 保护实现方法详解
2019/10/30 Python
Python高级编程之消息队列(Queue)与进程池(Pool)实例详解
2019/11/01 Python
python中的yield from语法快速学习
2020/11/06 Python
利用HTML5 Canvas制作键盘及鼠标动画的实例分享
2016/03/15 HTML / CSS
日本7net购物网:书籍、漫画、杂志、DVD、游戏邮购
2017/02/17 全球购物
年会活动策划方案
2014/01/23 职场文书
竞聘书模板
2014/03/31 职场文书
团代会宣传工作方案
2014/05/08 职场文书
法语专业求职信
2014/07/20 职场文书
遗嘱范文
2015/08/07 职场文书
简单聊聊TypeScript只读修饰符
2022/04/06 Javascript
win11系统中dhcp服务异常什么意思? Win11 DHCP服务异常修复方法
2022/04/08 数码科技