如果密钥存在,Javascript检查多维数组

时间:2015-10-26 14:39:11

标签: javascript arrays multidimensional-array

您好我需要检查三维json数组,现在我就像这样检查

if(events[dd][mm][rr] !== undefined){}

但是如果键不存在则会给我一个错误。 TypeError: events[dd] is undefined

我需要一些JS函数来检查这个条件是否存在以及TypeError的错误。谢谢。

3 个答案:

答案 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库来执行此操作,因为它有一堆用于快速查找数据的功能,而且性能明智似乎如果我必须自己迭代数组,那么开销会更好。