关于数组的一点事儿
好久不写东西了,直接主题吧
需求:有一个数组,
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 水平一般,急需大神指导怎么优化代码
小弟先谢过了