javascript笛卡尔积算法实现方法

 更新时间:2015年04月08日 14:50:39   作者:liuli  
这篇文章主要介绍了javascript笛卡尔积算法实现方法,实例分析了笛卡尔积算法的javascript实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了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 异步调用

    本文通过一个小小题目逐步走进javascript 异步调用问题,本文附有解答过程,感兴趣的朋友一起看看吧
    2017-10-10
  • 谈谈IntersectionObserver懒加载的具体使用

    谈谈IntersectionObserver懒加载的具体使用

    这篇文章主要介绍了谈谈IntersectionObserver懒加载的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • js实现简易点击切换显示或隐藏

    js实现简易点击切换显示或隐藏

    这篇文章主要为大家详细介绍了js实现简易点击切换显示或隐藏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • Javascript简单改变表单元素背景的方法

    Javascript简单改变表单元素背景的方法

    这篇文章主要介绍了Javascript简单改变表单元素背景的方法,涉及javascript操作页面元素样式的基本技巧,非常简单实用,需要的朋友可以参考下
    2015-07-07
  • JS正则表达式完美实现身份证校验功能

    JS正则表达式完美实现身份证校验功能

    这篇文章主要介绍了JS正则表达式完美实现身份证校验功能,需要的朋友可以参考下
    2017-10-10
  • 原生JS可拖动弹窗效果实例代码

    原生JS可拖动弹窗效果实例代码

    这篇文章介绍了原生JS可拖动弹窗效果实例代码,有需要的朋友可以参考一下
    2013-11-11
  • 微信小程序开发中var that =this的用法详解

    微信小程序开发中var that =this的用法详解

    这篇文章主要介绍了微信小程序开发中var that =this的用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • JS获取指定时间的时间戳的方法汇总(最新整理收藏版)

    JS获取指定时间的时间戳的方法汇总(最新整理收藏版)

    在JavaScript中,可以使用Date.parse()或new Date()来获取指定时间的时间戳,本文给大家分享JS获取指定时间的时间戳的方法,感兴趣的朋友一起看看吧
    2024-01-01
  • javascript函数式编程程序员的工具集

    javascript函数式编程程序员的工具集

    函数式编程语言一向被认为是比其它编程语言更高深的语言。一是因为函数式编程语言的语法很另类,比如Lisp语言,二是因为函数式编程语言都很古老,比如Schema语言。在如今面向对象语言大行其道的时代,函数式编程语言有其特殊的优势
    2015-10-10
  • 深入解析JavaScript中函数的Currying柯里化

    深入解析JavaScript中函数的Currying柯里化

    这篇文章主要介绍了JavaScript中函数的Currying柯里化,Currying 的重要意义在于可以把函数完全变成"接受一个参数、返回一个值"的固定形式,需要的朋友可以参考下
    2016-03-03

最新评论