Matrix / 2D阵列沙漏阵列元素未定义

时间:2016-06-20 00:05:21

标签: javascript arrays matrix 2d

面对数组元素的问题。在下面的情况中,问题集如下:

  

实际上,上面的数组中有很多沙漏。沙漏看起来像这样:

     

1 1 1
            1   1 1 0

     

沙漏的总和是其中所有数字的总和。   上述沙漏的总和分别为7,4和2。

     

在这个问题中,你必须打印所有的最大总和   数组中的沙漏。

现在我的解决方案是循环遍历可能的所有数组位置(中间位置不在数组的外边界)。并总结了围绕该中心位置的沙漏位置。

这个错误令我感到困惑,尽管2,2在数组和界限范围内显然是明显的。对于“底行”上的数组元素,我收到错误“undefined”。

任何帮助都会非常感激。

function main() {

    var arr = [];
    var max = 0;
    for(arr_i = 0; arr_i < 6; arr_i++){
       arr[arr_i] = readLine().split(' ');    
        var len = arr[0].length -1;
        if (arr_i !== 0 && arr_i !== len){
            for (var j=0; j < len; j++){
                if (j !== 0 && j !== len ){
                    console.log("this is i " + arr_i + "and the j " + j);
                    var currentMax = 0;
                    currentMax += parseInt(arr[arr_i -1][j-1]);
                    currentMax += parseInt(arr[arr_i -1][j]);
                    currentMax += parseInt(arr[arr_i -1][j+1]);
                    currentMax += parseInt(arr[arr_i][j]);
                    //currentMax += parseInt(arr[arr_i +1][j-1]);
                    //currentMax += parseInt(arr[arr_i +1][j]);
                    // currentMax += parseInt(arr[arr_i +1][j+1]);
                    console.log("dumb ", arr[2][2]);
                    console.log("currentMax ", currentMax);
                    max = Math.max(currentMax, max);
                }
            }
        }
    }
    console.log(max);
}

0 个答案:

没有答案