处理2d数组中的未定义值

时间:2017-08-24 16:49:00

标签: javascript arrays

它基本上是一个超出范围的检查,而且'我在理解如何处理二维数组中的undefined值时遇到了问题。

我到目前为止所做的是检查列和行索引是否都存在if(!arr[x][y]),检查两者是否都未定义if(arr[x][y] === undefined)并最终检查索引是否大于数组长度 - 1(数组为10x10)。

以上这些都没有奏效,即使把条件设定为“我仍然得到”

TypeError: Cannot set property '' of undefined

有没有办法解决这个问题?

编辑:

TypeError if (arr[x + i * dx][y + i * dy] === undefined)更精确地显示在[y + i * dy] xy是列和行索引,dx和{ {1}}为0或1值,因此可以垂直或水平检查。

如果我垂直检查,我不会收到任何错误,只有当我横向检查我遇到dy时才会出现错误。

1 个答案:

答案 0 :(得分:0)

你应该这样检查:

var days = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];
 var d = new Date();
 var n = d.getDay()

var todaysDate = days.filter(function(day,index){
    return index === n;
});
window.location.href = todaysDate.toString()+'pic'+'.png';

这样,如果行未定义,则不执行第二次检查,并且不会引发错误。这可以归功于衬衫电路评估:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators#Short-circuit_evaluation