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)。
TA贡献1797条经验 获得超4个赞
你必须自己做一些检查
一种方法是定义一个get函数并使用它
例如
function get(object, key, default_value) {
var result = object[key];
return (typeof result !== "undefined") ? result : default_value;
}
添加回答
举报