重複の可能性:
読み取る前に未定義のjavascriptプロパティを設定する
JavascriptにPythonのdefaultdictに相当するものはありますか?これは、欠落しているキーに対して返される値が定義可能なJavascript配列になります。何かのようなもの:
var a = defaultArray("0");
console.log(a['dog']);
// would print 0
そうでない場合、どのように実装しますか?
重複の可能性:
読み取る前に未定義のjavascriptプロパティを設定する
JavascriptにPythonのdefaultdictに相当するものはありますか?これは、欠落しているキーに対して返される値が定義可能なJavascript配列になります。何かのようなもの:
var a = defaultArray("0");
console.log(a['dog']);
// would print 0
そうでない場合、どのように実装しますか?
いいえ、これはJavaScriptでは不可能です。ところで、あなたは確かに配列ではなくオブジェクト(プロパティ値マップ)を意味していました。2つの解決策:
オブジェクトをとして実装しますProxy
。これは、必要なことを正確に実行するように設計されています。ただし、これはドラフトにすぎず、現在FirefoxのJavascript1.8.5でのみサポートされています。
オブジェクトプロパティの代わりに文字列パラメータでgetter関数を使用します。この関数は、内部の「辞書」オブジェクトで入力キーを検索し、プログラムでミスを処理できます。たとえば、動的に値を作成したり、デフォルト値を返したりできます。
もちろん、そのようなゲッター関数のファクトリを構築することもできます。
function defaultDict(map, default) {
return function(key) {
if (key in map)
return map[key];
if (typeof default == "function")
return default(key);
return default;
};
}
var a = defaultDict({cat: 1}, 0);
console.log(a('cat')); // 1
console.log(a('dog')); // 0