2017-10-24 12 views
-1

3+深度のオブジェクトの中に何かが定義されていない場合、javascriptの値をデフォルトにする方法を探しています。例えば、このような何か:Javascript未定義チェックショートカット

var finalData = {}; 
const data = {}; 
finalData.transactions = data.b.transactions || []; 

の代わり:

var finalData = {}; 
const data = {}; 
if (data.b) 
    finalData.transactions = data.b.transactions || []; 
else 
    finalData.transactions = []; 

最初の行の問題は、データがBという名前の子を持っていない場合、それは未定義のアクセスの問題で失敗しますです。

+0

私は考えることができるほとんどが使用しています三元比較 – Lixus

+0

リード詐欺のおかげで。ダウンボートは私がこのコミュニティに質問するのをとても恐れている理由です。ここで解決策を探して何かを見つけられない2時間を過ごした後、私は助けを求めることにし、処罰されました。 – gyleg5

答えて

0

あなたが& &と||を組み合わせることによって、これを達成することができます

finalData.transactions = (data && data.b && data.b.transactions) || []; 
0

あなたは以下のようにそれを行うことができます。

var finalData = {}; 
 
const data = {}; 
 
finalData.transactions = data.b && data.b.transactions || [];