Ale*_*lex 6 javascript arrays multidimensional-array
有没有更清晰/更短的方法来检查多维数组是否未定义(这避免了任何维度上的未定义错误),而不是:
if(arr != undefined && arr[d1] != undefined && arr[d1][d2] != undefined){
// arr[d1][d2] isn't undefined
}
Run Code Online (Sandbox Code Playgroud)
如果执行以下操作将导致错误,如果其中一个arr或arr[d1]未定义:
if(arr[d1][d2] != undefined){
// arr[d1][d2] isn't undefined
}
Run Code Online (Sandbox Code Playgroud)
令人沮丧的是您无法直接测试 arr[d1][d2] 。但据我所知,javascript 不支持多维数组。
所以你唯一的选择就是你所建议的
if(arr != undefined && arr[d1] != undefined && arr[d1][d2] != undefined){
// arr[d1][d2] isn't undefined
}
Run Code Online (Sandbox Code Playgroud)
或者如果您经常使用它,则将其包装在函数中。
function isMultiArray(_var, _array) {
var arraystring = _var;
if( _array != undefined )
for(var i=0; i<_array.length; i++)
{
arraystring = arraystring + "[" + _array[i] + "]";
if( eval(arraystring) == undefined ) return false;
}
return true;
}
if( ! isMultiArray(arr, d) ){
// arr[d1][d2] isn't undefined
}
Run Code Online (Sandbox Code Playgroud)