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;
}
添加回答
舉報