首页 > 编程语言 > 详细

关于数组的一点事儿

时间:2015-12-07 10:28:57      阅读:238      评论:0      收藏:0      [点我收藏+]

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

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 水平一般,急需大神指导怎么优化代码
小弟先谢过了

关于数组的一点事儿

原文:http://www.cnblogs.com/flsummer/p/5025286.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!