• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >编程问答 > JavaScript小算法!

JavaScript小算法!

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-07

佚名通过本文主要向大家介绍了javascript算法,javascript常用算法,javascript排序算法,javascript算法题,javascript银行家算法等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:JavaScript小算法!
描述:

给定一个Javascript二维数组,如何得到其笛卡尔积。
var Test = new Array();
Test[0] = new Array(1, 2, 3);
Test[1] = new Array(4, 5, 6);

求大神解答!


解决方案1:

function descartes(){
    if( arguments.length < 2 ) return arguments[0] || [];

    return [].reduce.call(arguments, function(col, set) {
        var res = [];
        col.forEach(function(c) {set.forEach(function(s) {
            var t = [].concat( Array.isArray(c) ? c : [c] );
            t.push(s);
            res.push(t);
        })});
        return res;
    });
}
descartes([1,2,3],[4,5,6],[7,8,9],[10,11,12]);

解决方案2:

不就是循环一下么

function descartes(dimensionX, dimensionY) {
    var xLen,yLen;
    if(!(xLen = dimensionX.length) || !(yLen = dimensionY.length)) return [];
    var products = [];
    for(var i=0; i< xLen;i++){
        for(var j=0;j<yLen;j++){
            products.push([dimensionX[i],dimensionY[j]])
        }
    }
    return products;
}

是这个意思么

解决方案3:

改编了一个大神给的解决方案!

<script type="text/javascript">
        var data = new Array(new Array(1, 2, 3), new Array(4, 5, 6));
        var result = [];
        console.log(data);
        function descartes(arrIndex, aresult){
            if (arrIndex >= data.length) {
                result.push(aresult);
                return ;
            }
            var aArr = data[arrIndex];
            for (var i = 0; i < aArr.length; ++i) {
                var theResult = aresult.slice(0, aresult.length);
                theResult.push(aArr[i]);
                descartes(arrIndex + 1, theResult);
            }
        }
        descartes(0, []);
        console.log(result);
    </script>


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 这段JavaScript的排列组合算法如何理解?
  • javascript面试题一道有趣的面试题
  • 有没有学习javascript算法的好的思路,或者好书?
  • JavaScript小算法!

相关文章

  • 2017-06-07 如果小视频缓存在memcache里面,JWPlayer可以读取么
  • 2017-06-07 (python)"你的环境有问题"这句话中的环境指的是什么?
  • 2017-06-07 七牛的phpwind插件存在的吗
  • 2017-06-07 laravel的ServiceProvider的boot方法和providers方法如何使用
  • 2017-06-07 (redis)不知道国内有多少用Python+CouchDB的朋友,谈一下经验。。。
  • 2017-06-07 redisredis如何只对其中一个库做持久化存储?
  • 2017-06-07 求救啊jboss应用JMS碰到的问题
  • 2017-06-07 (python)Django前台url未能正确访问方法求助?
  • 2017-06-07 http代理服务器如何向http服务器发送大量数据
  • 2017-06-07 windows下php56安装redis扩展包的问题

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • token和简单上传的心得,同时询问如何修改ios的sdk可以实现预处理
    • (python)Java可交互股票分析图表解决方案?
    • shell中echo输出字符串内容时不丢失字符串最后的空行
    • jboss50GA端口修改
    • java正则表达式语法关于用java中正则表达式匹配单个字符
    • Unicode转中文,开发工具为pycharm,语言Python2,怎样处理?还是我程序有误?
    • python爬虫(python)如何优雅的获取下载速度?
    • mac上编译安装nginx的时候报错有错误信息
    • funambol+jboss+mysql+scts测试报错
    • python2和python3一起装了,现在有个代码是python2的pip默认3的怎么弄?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有