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判断操作系统的类型实现不同操作系统下的兼容性
Jan 29 Javascript
js数值和和字符串进行转换时可以对不同进制进行操作
Mar 05 Javascript
jQuery 过滤方法filter()选择具有特殊属性的元素
Jun 15 Javascript
jQuery实现右下角可缩放大小的层完整实例
Jun 20 Javascript
由浅入深剖析Angular表单验证
Jul 14 Javascript
Javascript中浏览器窗口的基本操作总结
Aug 18 Javascript
AngularJS入门教程之Helloworld示例
Dec 25 Javascript
Javascript中document.referrer隐藏来源的方法
Jan 16 Javascript
canvas滤镜效果实现代码
Feb 06 Javascript
Vue与Node.js通过socket.io通信的示例代码
Jul 25 Javascript
axios+Vue实现上传文件显示进度功能
Apr 14 Javascript
vue + elementUI实现省市县三级联动的方法示例
Oct 29 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与已存在的Java应用程序集成
2006/10/09 PHP
php中in_array函数用法探究
2014/11/25 PHP
Yii框架弹出窗口组件CJuiDialog用法分析
2017/01/07 PHP
建议大家看下JavaScript重要知识更新
2007/07/08 Javascript
jquery 图片预加载 自动等比例缩放插件
2008/12/25 Javascript
ExtJS 2.0 GridPanel基本表格简明教程
2010/05/25 Javascript
JQuery给元素添加/删除节点比如select
2013/04/02 Javascript
JS解决url传值出现中文乱码的另类办法
2013/04/08 Javascript
JQuery加载图片自适应固定大小的DIV
2013/09/12 Javascript
JS 实现导航栏悬停效果
2013/09/23 Javascript
Javascript玩转继承(一)
2014/05/08 Javascript
js控制div弹出层实现方法
2015/05/11 Javascript
JS实现的自定义网页拖动类
2015/11/06 Javascript
JavaScript中创建对象的模式汇总
2016/04/19 Javascript
使用jQuery实现一个类似GridView的编辑,更新,取消和删除的功能
2017/03/15 Javascript
bootstrap confirmation按钮提示组件使用详解
2017/08/22 Javascript
react-native使用react-navigation进行页面跳转导航的示例
2017/09/07 Javascript
vue中的scope使用详解
2017/10/29 Javascript
React Native中NavigatorIOS组件的简单使用详解
2018/01/27 Javascript
VUE 使用中踩过的坑
2018/02/08 Javascript
vue中简单弹框dialog的实现方法
2018/02/26 Javascript
vue移动端项目缓存问题实践记录
2018/10/29 Javascript
javascript自定义日期比较函数用法示例
2019/07/22 Javascript
[03:40]DOTA2抗疫特别篇《英雄年代》
2020/02/28 DOTA
Python中的getopt函数使用详解
2015/07/28 Python
星球大战与Python之间的那些事
2016/01/07 Python
Python实现针对中文排序的方法
2017/05/09 Python
python用户管理系统的实例讲解
2017/12/23 Python
django框架使用orm实现批量更新数据的方法
2019/06/21 Python
代码总结Python2 和 Python3 字符串的区别
2020/01/28 Python
Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)
2020/09/29 Python
删除pycharm鼠标右键快捷键打开项目的操作
2021/01/16 Python
Pytorch - TORCH.NN.INIT 参数初始化的操作
2021/02/27 Python
BOSE德国官网:尽探索之力,享音乐之极
2016/12/11 全球购物
高中生学习总结的自我评价范文
2013/10/13 职场文书
小学四年级作文之写景
2019/08/23 职场文书