2 回答

TA貢獻(xiàn)1982條經(jīng)驗(yàn) 獲得超2個(gè)贊
沒(méi)有。
蟒蛇。在 Python 中,如果你寫(xiě):
PLAN_TO_COST_PER_UNIT.get(planType, value_if_empty)
這意味著如果planType鍵存在,則返回該值,無(wú)論該值是什么。如果找不到,value_if_empty則退回。
例如:
>>> a = {'key': 0}
>>> a.get('key', 1425)
0
JavaScript。您的 JavaScript 版本不會(huì)這樣做:它獲取鍵的值,如果不存在這樣的鍵,undefined則返回。然后你使用||這樣的,如果結(jié)果的“真實(shí)性”是false,它需要正確的操作數(shù) ( value_if_empty)。
但是,如果您要構(gòu)造一個(gè)值為 的對(duì)象0,那么它仍然會(huì)采用value_if_empty,例如:
> a = {key: 0}
{ key: 0 }
> a['key'] || 1425
1425
我認(rèn)為最接近 Python 版本的是進(jìn)行成員資格檢查:
function tryget(obj, key, missing) {
if(key in obj) {
return obj[key];
}
else {
return missing;
}
}
然后我們可以用 來(lái)調(diào)用它tryget({a: 0}, 'a', 1425)。

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個(gè)贊
你必須自己做一些檢查
一種方法是定義一個(gè)get函數(shù)并使用它
例如
function get(object, key, default_value) {
var result = object[key];
return (typeof result !== "undefined") ? result : default_value;
}
添加回答
舉報(bào)