javascript - 如何检查对象中的 hasOwnProperty 链

标签 javascript angularjs node.js hasownproperty

我有这样的 json

var a = {
    "name": "test1",
    "redisData": {
        "redisIp": "127.0.0.1",
        "dbSetting": {
            "dbIp": "127.0.0.1",
            "dbUserName": "root",
            "dbUserPassword": "root",
        },
        "otherData":{
            "email":"a@gmail.com"
        }
    }
}

所以当所有数据都存在于所有键中时,我必须将这些数据推送到数据库中 为此,我必须像这样验证该数据

if (a.hasOwnProperty("redisData")) {
    if (a.redisData.hasOwnProperty("dbSetting")) {
        if (a.redisData.dbSetting.hasOwnProperty("dbIp")) {
            if (a.redisData.dbSetting.dbIp) {
                // now insert in to database
            } else {
                alert('DB server Ip missing');
            }
        } else {
            alert('DB server Ip missing');
        }
    } else {
        alert('DB server Ip missing');
    }
} else {
    alert('DB server Ip missing');
}

但是这段代码看起来很难看。我们是否有更好的方法来避免多个 if 条件和 hasownproperty 的链接。

最佳答案

简单:只需检查值是否存在并且具有真值:

if (a.redisData && a.redisData.dbSetting && a.redisData.dbSetting.dbIp) {
    // now insert in to database
} else {
    alert('DB server Ip missing');
}

此处使用 hasOwnProperty 并没有真正的优势。

关于javascript - 如何检查对象中的 hasOwnProperty 链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51841235/

相关文章:

javascript - 表单字段未绑定(bind)到 typescript 变量

javascript - run 方法中的 Angular $q 服务实现

javascript - 如何将输入字段转换为选择选项?

javascript - AngularUI DatePicker - JavaScript - 获取 SQL 日期格式时休息一天

javascript - 如何在 Angular 农业网格中显示数据

javascript - 如何在 ng-repeat 中进行 ng-model ?

javascript - ng-repeat 与 ng-options 哪个最适合我

node.js - Mongoose 和 NodeJS 中的多个数据库使用相同的引用文件架构

javascript - 对象数组压缩为具有嵌套数组的唯一对象数组

node.js - Docker:容器可以执行 docker ps 或 docker images 吗?