連想配列のキーの存在をどのくらい正確にチェックするか教えてください。例えば連想配列のキーの存在を確認する
:私は
safeSet(mydata.key2.subkey1.subkey1_1.value1, 'test');
または
if (is_undefined(mydata.key2.subkey1.subkey1_1.value1) == true)
mydata.key2.subkey1.subkey1_1.value1 = 'test'; // now - error if 'mydata.key2.subkey1.subkey1_1' not exist
のように、単純な機能を使用したい
((mydata.key2 != undefined) && (mydata.key2.subkey1 != undefined) && (mydata.key2.subkey1.subkey1_1 != undefined))
var mydata = {
key1: '',
key2: {
subkey1: {
subkey1_1: {
value1: ''
value2" '',
},
},
subkey2: '';
},
}
if ((mydata.key2 != undefined) && (mydata.key2.subkey1 != undefined) && (mydata.key2.subkey1.subkey1_1 != undefined))
mydata.key2.subkey1.subkey1_1.value1 = 'test';
長すぎると混乱
"key" in obj // true, regardless of the actual value
をそれとも、あなたがオブジェクトインスタンスのプロパティ(および継承されない性質)のために特にテストする場合、これは希望hasOwnProperty:
obj.hasOwnProperty("key") // true
希望を使う:
'associative arrays'?あなたは ''オブジェクト ''を意味する –
キーが存在するか、キーに値があるかどうかチェックしますか?あなたの質問は前者を、あなたのコードは後者を意味します。どちらの方法でも、 'try/catch'ブロックを使うことができるように聞こえます。 –