您好我需要检查三维json数组,现在我就像这样检查
if(events[dd][mm][rr] !== undefined){}
但是如果键不存在则会给我一个错误。 TypeError: events[dd] is undefined
我需要一些JS函数来检查这个条件是否存在以及TypeError的错误。谢谢。
答案 0 :(得分:2)
您必须检查每个嵌套的命名空间。如果你需要在以后更深入地检查地图,你也可以根据需要编写一个递归函数。
if (events[dd] && events[dd][mm] && events[dd][mm][rr] !== undefined) {}
答案 1 :(得分:0)
也许使用这样的东西:
function mdArrayExists(arr, var_args) {
for (var i=1, k=arguments.length; i<k; ++i) {
if (!arr || !arr.hasOwnProperty(arguments[i])
return false;
arr = arr[arguments[i]];
}
return true;
}
<强>用法:强>
if (mdArrayExists(events, dd, mm, rr) ...
答案 2 :(得分:0)
我与该公司没有任何关系,但每当我需要进行数组搜索工作时,我都会使用underscore.js库来执行此操作,因为它有一堆用于快速查找数据的功能,而且性能明智似乎如果我必须自己迭代数组,那么开销会更好。