在 python 中查找字典到 javascript

下面两个表达式等价吗?


# python

PLAN_TO_COST_PER_UNIT.get(planType, value_if_empty)


# javascript

PLAN_TO_COST_PER_UNIT[planType] || value_if_empty;

如果不是,那么在 javasript 中与执行上述 python dict 查找最接近的等价物是什么?


Qyouu
浏览 161回答 2
2回答

临摹微笑

没有。蟒蛇。在 Python 中,如果你写:PLAN_TO_COST_PER_UNIT.get(planType, value_if_empty)这意味着如果planType键存在,则返回该值,无论该值是什么。如果找不到,value_if_empty则退回。例如:>>> a = {'key': 0}>>> a.get('key', 1425)0JavaScript。您的 JavaScript 版本不会这样做:它获取键的值,如果不存在这样的键,undefined则返回。然后你使用||这样的,如果结果的“真实性”是false,它需要正确的操作数 ( value_if_empty)。但是,如果您要构造一个值为 的对象0,那么它仍然会采用value_if_empty,例如:> a = {key: 0}{ key: 0 }> a['key'] || 14251425我认为最接近 Python 版本的是进行成员资格检查:function tryget(obj, key, missing) {    if(key in obj) {        return obj[key];    }    else {        return missing;    }}然后我们可以用 来调用它tryget({a: 0}, 'a', 1425)。

繁星coding

你必须自己做一些检查一种方法是定义一个get函数并使用它例如function get(object, key, default_value) {    var result = object[key];    return (typeof result !== "undefined") ? result : default_value;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python