首页 > 解决方案 > JavaScript 多维数组检查 typeof 是否为“未定义”

问题描述

如果您创建一个多维数组:

var ThisArray = [];
ThisArray["a"] = [];
ThisArray["a"]["b"] = [];
ThisArray["a"]["b"]["c"] = "This is a string.";

如何检查ThisArray["a"]["w"]["c"]example 是否已定义。现在我正在这样做:

if (typeof ThisArray !== 'undefined') {
    if (typeof ThisArray["a"] !== 'undefined') {
        if (typeof ThisArray["a"]["w"] !== 'undefined') {
            if (typeof ThisArray["a"]["w"]["c"] !== 'undefined') {

                // ThisArray["a"]["w"]["c"] is defined!

            }
        }
    }
}

我怎样才能做得更好,更清洁?

标签: javascriptarraysmultidimensional-array

解决方案


使用可选链接

if (typeof ThisArray?.["a"]?.["w"]?.["c"] !== 'undefined') {
   // ThisArray["a"]["w"]["c"] is defined!
}

如评论中所述,这是一个相对较新的语言功能,旧浏览器不支持。请参阅浏览器兼容性


推荐阅读