你的位置:首页 > Java教程

[Java教程]关于数组的一点事儿


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

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