通过访问和匹配键值来获取对象值

时间:2019-03-09 20:14:18

标签: javascript

我正在通过数据库调用检索对象,我想通过将键与我拥有的变量进行匹配来访问键的值。

在数据库返回中,我得到一个看起来与此类似的对象:

{"_id":"5c840d548a7db8af2f9eefea",
"domain":"chatbotdemo.com","deliveryTime":"ba",
"emailAddress":"ab","freeDelivery":"ab","onSale":"ab"}

我有一个变量:

var intent = 'emailAddress'

该变量应始终存在,但极有可能不存在 并且也可能为空。

我要做的是从与var intent匹配的键字段中访问值,或者至少获取键值对。

然后我还想做的是,如果它为null则调用错误,我的完整代码如下:

getClientsDialog: function (domain, intent, callback) {

    MongoClient.connect('mongodb://111011001101101', function (err, client) {
        if (err) throw err;
        var db = client.db('10001101');
        db.collection('dialog').findOne({ domain: domain}, function (err, doc) {

    // here I would want to say if (!err && ****logic to check match****)
            if (!err) {

                callback(doc)
            } else {
                throw err;
                callback(err)
            }
            client.close();
        });
        console.dir("Called findOne");
    });

}

任何帮助将不胜感激!

谢谢!

1 个答案:

答案 0 :(得分:1)

不确定我是否解决了问题,但是在ES6中可以使用computed value as an property name。像这样:

data List' (a :: Type) (n :: Nat) where
  Nil :: List' a Z
  Cons :: a -> List' a m -> List' a (S m)

to :: List' a n -> List a n
to Nil = niln
to (Cons a l) = consn a (to l)

from :: List a n -> List' a n
from l = l Nil Cons