为了账号安全,请及时绑定邮箱和手机立即绑定

在 python 中查找字典到 javascript

在 python 中查找字典到 javascript

Qyouu 2021-07-06 18:01:34
下面两个表达式等价吗?# pythonPLAN_TO_COST_PER_UNIT.get(planType, value_if_empty)# javascriptPLAN_TO_COST_PER_UNIT[planType] || value_if_empty;如果不是,那么在 javasript 中与执行上述 python dict 查找最接近的等价物是什么?
查看完整描述

2 回答

?
临摹微笑

TA贡献1982条经验 获得超2个赞

没有。


蟒蛇。在 Python 中,如果你写:


PLAN_TO_COST_PER_UNIT.get(planType, value_if_empty)

这意味着如果planType键存在,则返回该值,无论该值是什么。如果找不到,value_if_empty则退回。


例如:


>>> a = {'key': 0}

>>> a.get('key', 1425)

0

JavaScript。您的 JavaScript 版本不会这样做:它获取键的值,如果不存在这样的键,undefined则返回。然后你使用||这样的,如果结果的“真实性”是false,它需要正确的操作数 ( value_if_empty)。


但是,如果您要构造一个值为 的对象0,那么它仍然会采用value_if_empty,例如:


> a = {key: 0}

{ key: 0 }

> a['key'] || 1425

1425

我认为最接近 Python 版本的是进行成员资格检查:


function tryget(obj, key, missing) {

    if(key in obj) {

        return obj[key];

    }

    else {

        return missing;

    }

}

然后我们可以用 来调用它tryget({a: 0}, 'a', 1425)。


查看完整回答
反对 回复 2021-07-13
?
繁星coding

TA贡献1797条经验 获得超4个赞

你必须自己做一些检查


一种方法是定义一个get函数并使用它


例如


function get(object, key, default_value) {

    var result = object[key];

    return (typeof result !== "undefined") ? result : default_value;

}


查看完整回答
反对 回复 2021-07-13
  • 2 回答
  • 0 关注
  • 149 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信