它基本上是一个超出范围的检查,而且'我在理解如何处理二维数组中的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]
x
和y
是列和行索引,dx
和{ {1}}为0或1值,因此可以垂直或水平检查。
如果我垂直检查,我不会收到任何错误,只有当我横向检查我遇到dy
时才会出现错误。
答案 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';
这样,如果行未定义,则不执行第二次检查,并且不会引发错误。这可以归功于衬衫电路评估: