3

api 以无法定义的深度返回 JSON 响应,其中可能包含或不包含某些元素。如何检查属性是否存在?一些参数包括奇怪的名称,如“@param”或​​“$”。示例如下。

我写了一个类似的检查,但由于上述原因不能使用点语法。非常感谢您对修改此内容的帮助。

function checkValue(objectPath) {
    var keys = Object.isArray(objectPath) ? objectPath : objectPath.split(".");
    if (keys[0] == "window") keys.shift();
    try {
    return keys.inject(window, function(obj, key) {return obj[key];});
    } catch (e) {
        return undefined;
    }
}

要测试的对象的示例是:

var obj = {
member: {
    '@member-age': {
        value: 42
    }
}};

在我用 checkValue(obj.member.age) 检查它之前,但在这个例子中由于明显的原因不能这样做。

4

0 回答 0