次のようなJavaScriptオブジェクトがあるとします。
var obj = {};
obj.computers = {};
obj.computers.favorite = "Commodore 64";
obj.computers.popular = "Apple";
これで、次のようにnullを簡単に確認できます。
if(obj != 'undefined' && obj != null) {
if(obj.computers != 'undefined' && obj.computers != null)) {
.....
ご覧のとおり、obj.computers.favorite
設定されているかどうかを確認する必要がある場合は、条件付きロジックを実際にネストする必要があります。一部のオブジェクトは、3、4、5レベルの深さになります。
これが私がしたいことです:
var fav = obj.computers.favorite || 'Unknown';
しかし、私はそれを何らかの方法でラップする必要があることを理解しています。何かのようなもの:
var fav = getValueOrDefault(obj.computers.favorite, 'Unknown');
提案をいただければ幸いです。
ありがとう
編集
'undefined'のチェックは、実際には私が使用しているものではありません。質問をすると頭から浮かびました。笑
しかし、私は疑問に思っていました。try/ catchでラップして、例外の場合はデフォルトをスローできますか?
function(obj, default) {
try {
if(obj != null) {
return obj;
} else {
return default;
}
} catch(ex) {
return default;
}
}
また、冗長な変数を指定してくれたShusiに感謝します。