遍历对象以检查未定义的值

时间:2019-12-16 14:29:55

标签: typescript

我正在尝试将一个实用程序函数放在一起,该函数将查看对象中键[?]的值并检测何时未定义。 目的是根据数据库查询返回的“行”对对象进行完整性检查-如果数据库中不存在该列,则需要对此进行标记。 经过一些搜索后,我得到以下信息:


...
{
    const newEv: myEventType = {
        position: { lat: row.LatV, lng: row.LongV },
        txt: row.Text
    }

    const undef: string = CheckUndefined(newEv, "myEventType")
}


function CheckUndefined(ev: object, evName: string): string {

    let exc: string = ""

    const keys = Object.keys(ev)

    keys.map(key => {
        if (Reflect.get(ev, key) === undefined) {
            if (exc.length == 0) {
                // TODO Not have to pass 'evName' to this function
                exc = `Undefined fields in ${evName}:`
            }
            exc += " " + `'${key}'`
        }

        // else if ....
        // TODO Determine if the key is itself an object, in which case recurse into it too

        else
            console.log(`Good, ${key} is indeed defined`)
    })

    return exc
}

(可能有一些更流畅的方法吗,但这就是我的阅读所想出的)

这可行,但是我想进一步增强(请参阅TODO): 1.重要的是,键可能是对象本身(例如“位置”),在这种情况下,我想递归并对其进行检查。 2.理想情况下,不必将“ evName”传递给函数-让CheckUndefined从“ ev”自动检测到它)

非常感谢您收到的任何帮助/改进。

0 个答案:

没有答案