在python中,你可以有一個defaultdict(int),它將int存儲爲值。如果您嘗試對字典中不存在的某個鍵進行「獲取」,則您將得到零作爲默認值。在JavaScript中相當於Defaultdict
你可以做同樣的JavaScript/jQuery的
在python中,你可以有一個defaultdict(int),它將int存儲爲值。如果您嘗試對字典中不存在的某個鍵進行「獲取」,則您將得到零作爲默認值。在JavaScript中相當於Defaultdict
你可以做同樣的JavaScript/jQuery的
我不認爲有等價,但你總是可以自己編寫。在javascript字典相當於將一個對象,所以你可以把它寫像這樣
function defaultDict() {
this.get = function (key) {
if (this.hasOwnProperty(key)) {
return key;
} else {
return 0;
}
}
}
然後調用它像這樣
var myDict = new defaultDict();
myDict[1] = 2;
myDict.get(1);
這不會工作,如果你想要將默認值設爲集合(例如,列表圖)。 –
var collections = require('pycollections');
var dd = new collections.DefaultDict(function(){return 0});
console.log(dd.get('missing')); // 0
dd.setOneNewValue(987, function(currentValue) {
return currentValue + 1;
});
console.log(dd.items()); // [[987, 1], ['missing', 0]]
你可以使用JavaScript構建一個Proxy
var defaultDict = new Proxy({}, {
get: (target, name) => name in target ? target[name] : 0
})
這使您可以在訪問屬性時使用與普通對象相同的語法。
defaultDict.a = 1
console.log(defaultDict.a) // 1
console.log(defaultDict.b) // 0
要清理它,你可以將它包裝在構造函數中,或者使用類語法。
的[設置未定義讀之前JavaScript屬性]
可能重複(http://stackoverflow.com/questions/11503666/set-undefined-javascript-property-before-read) – SheetJS