• 关于数组的一点事儿


    好久不写东西了,直接主题吧
    需求:有一个数组,

    var shape = [
    [1, 2, 3,13],
    [4, 5, 6,14],
    [7, 8, 9,15],
    [10,11,12,16]
    ];
    求连续三个数之和的最大值。比如123、147、159算连续, 124 不算连续
    以上数组简单可以看出最大值是14+15+16=45
    下面直接上代码

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
    </body>
    <script type="text/javascript" src="http://libs.baidu.com/jquery/1.11.1/jquery.min.js"></script>
    <script type="text/javascript">
    $(function () {
        var shape = [
              [1, 2, 3,13],
              [4, 5, 6,14],
              [7, 8, 9,15],
              [10,11,12,16]
            ];
        var arr = [];
        var sum = 0;
        //横向
        for (var i = 0; i < shape.length; i++) {
            for (var j = 0; j < shape[i].length-2; j++) {
                sum += shape[i][j]+shape[i][j+1]+shape[i][j+2];
                arr.push(sum);
                sum = 0;
            };
        };
        //纵向
        for (var i = 0; i < shape.length-2; i++) {
            for (var j = 0; j < shape[i].length; j++) {
                sum += shape[i][j]+shape[i+1][j]+shape[i+2][j];
                arr.push(sum);
                sum = 0;
            };
        };
        //斜向
        for (var i = 0; i < shape.length-2; i++) {
            for (var j = 0; j < shape[i].length-2; j++) {
                sum += shape[i][j]+shape[i+1][j+1]+shape[i+2][j+2];
                arr.push(sum);
                sum = 0;
            };
        };
        alert(Math.max.apply(null, arr));//最大值
        alert(Math.min.apply(null, arr));//最小值
    })
    </script>
    </html>

    分别计算了横向 纵向 以及斜向的数值之和 然后创建新的数组,在数组中取到最大最小值
    小弟JS 水平一般,急需大神指导怎么优化代码
    小弟先谢过了

  • 相关阅读:
    appcan封装好的ajax,解决onDATA覆盖问题
    待研究
    mysql主从实验
    jQuery动态加载JS以减少服务器压力
    HTTP协议详解
    企业站收藏
    Linux查看程序端口占用情况
    大流量网站优化
    营销类网站
    Nginx (简体中文)
  • 原文地址:https://www.cnblogs.com/flsummer/p/5025286.html
Copyright © 2020-2023  润新知