辞書のPythonのgetメソッドを使用すると、キーが存在しない場合に返される内容を指定できます。私の現在のケースでは、辞書を返すようにしたい。 Javascriptでこれを行うにはどうすればいいですか?辞書のPythonのgetメソッドのJavascriptに相当するもの
答えて
JavaScriptにはそのようなヘルパー機能はありません。明示的にテストする必要があります。
if ("myProperty" in myObject) {
return { another: "object" };
} else {
return myObject.myProperty;
}
3項演算子を使用すると、少ないコードで同じことを行うことができます。
return ("myProperty" in myObject) ? myObject.myProperty : { another: "object" };
これもプロトタイプをチェックしますか? – evolutionxbox
@evolutionxbox - はい。 (プロトタイプから継承したプロパティを除外したい場合は 'hasOwnProperty()'を使うことができます)。 – Quentin
@evolutionxbox https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/in ... –
あなたは、このためのプロキシ(本当に新しい)を使用することができます
var handler = {
get: function(target, name){
return name in target?
target[name] :
"Default";
}
};
var dictionary={"hi":true};
var dict = new Proxy(dictionary, handler);
dict.a = 1;
dict.b = undefined;
console.log(dict.a, dict.b,dict.hi); // 1, undefined,true
console.log(dict.new); //"Default"
//the proxied object gets changed:
console.log(dictionary.a, dictionary.b,dictionary.hi); // 1, undefined,true
console.log(dictionary.new); //undefined
プロキシは、すべての変更と要求ハンドラトラフを反映しているオブジェクトです。この場合、辞書のpropertysには通常どおりアクセスできますが、存在しない値にアクセスすると "Default"が返されます。
私は好奇心が強い人達のために:[MDN Documentation on proxy](https:///developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy)。 –
python dictionary getメソッドのjavascriptに相当するものはありません。あなたはそれを自分で書きたい場合は、関数と、それは次のようになります。要求されたキーはまた、OBJのプロトタイプで発見されること
var obj = {"a": 1};
get(obj, "a", 2); // -> 1
get(obj, "b", 2); // -> 2
注:
function get(object, key, default_value) {
var result = object[key];
return (typeof result !== "undefined") ? result : default_value;
}
は次のようにそれを使用してください。
実際に関数(obj.get("a", 2)
)ではなくメソッドが必要な場合は、Objectのプロトタイプを拡張する必要があります。しかし、これは一般的には悪い考えです。Extending Object.prototype JavaScript
- 1. 辞書に.get()メソッド
- 2. 辞書GETメソッドの動作
- 3. Pythonの `str.format`メソッドに相当するPHP?
- 4. Javascriptに相当するPythonのlocals()?
- 5. Jqueryの.load()簡略メソッドのjavascriptに相当するものは何ですか?
- 6. PHP連想配列のPython辞書setdefaultに相当するものはありますか?
- 7. Clojureの "assoc-in"とPythonの "get-in"に相当する
- 8. Javascriptオブジェクトのpythonの__name__に相当するものがありますか
- 9. OpenELECのapt-getに相当する
- 10. Javascript Python辞書の実装
- 11. memcacheとpython辞書の相違点
- 12. Ruby Array.eachメソッドに相当するPython
- 13. Struts2のRequestprocessor.processLocaleメソッドに相当するものは何ですか?
- 14. Javascriptの.sampleに相当するものは何ですか?
- 15. preg_matchのJavaScriptに相当するものは何ですか?
- 16. C#Server.URLEncodeのJavaScriptに相当するものは何ですか?
- 17. Python os.pathsepのRustに相当するものは何ですか?
- 18. pythonのgetattrに相当するものは何ですか
- 19. Go - Pythonの "pass"に相当するものは何ですか?
- 20. このPythonコードに相当するものは何ですか?
- 21. Python辞書in Javascript
- 22. 辞書内の辞書javascript
- 23. PythonでMatlabのbinoinvに相当するもの
- 24. javascriptのGETメソッド
- 25. MacでUbuntuのapt-getコマンドに相当するものは何ですか?
- 26. MASMの_emitに相当するもの
- 27. Juliaのgetattr()に相当するもの
- 28. PHPの 'implode'に相当するもの
- 29. boto3のboto.exception.BotoServerErrorに相当するもの
- 30. VB.NETのProgram.csに相当するもの
dict ['key'] ||デフォルト – ag0rex
jsにゲッターとセッターもあります。 –
[javascriptオブジェクト属性のデフォルト値を設定]の可能な複製(https://stackoverflow.com/questions/6600868/set-default-value-of-javascript-object) -attributes) – JJJ