请问可以使用变量来代替几段key去获取data的值吗?
发布于 8 年前 作者 rwu 12516 次浏览 来自 官方Issues

小弟在页面内定义了一个内部函数,希望每次调用的时候传入不同的“pram”值,去云函数数据库里查询键值为“pram”的值,比如 传入 pram = room[0].pic ,希望能读出数据库中 res.data.room[0].pic的值,但程序像下面这样写的话,没能成功,应该怎么写才行呢?

Page({

    //定义了一个页面内部函数,  

    _record( pram ) {

    db.collection(‘info’).where({ OpenID: OpenID}).get().then(res => {

    console.log(“读出数据库中键值为动态传过来的pram数据”, res.data[pram])

    })

    },

    //调用_record函数,传入 pram = room[0].pic,希望能获得 res.data.room[0].pic 的值,但是不成功

    this._record(room[0].pic);

})

2 回复

_record(pram) {

    db.collection(‘info’).where({ OpenID: OpenID }).get().then(res => {

        var ret = res.data, keys = typeof pram == ‘string’ ? pram.replace(/((\]\.)|\[)/g, ‘.’).split(’.’) : []

        for (var i in keys) {

            var k = keys[i]

            if (ret.hasOwnProperty(k)) {

                ret = ret[k]

            } else {

                break

            }

        }

        console.log(“读出数据库中键值为动态传过来的pram数据”, ret)

    })

}

=============

 this._record(room[0].pic);

回到顶部