4

I am looking for a way to default a javascript value if something in an object with 3+ depth is undefined. For instance, something like this:

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

instead of:

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

The problem with the first line is it will fail with an undefined access issue if data does not have a child named b.

gyleg5
  • 144
  • 1
  • 2
  • 11

2 Answers2

4

You can achieve this by combining && and ||:

finalData.transactions = (data && data.b && data.b.transactions) || [];
Nico
  • 2,645
  • 19
  • 25
1

You can do it like below:

var finalData = {};
const data = {};
finalData.transactions = data.b && data.b.transactions || [];
Faly
  • 13,291
  • 2
  • 19
  • 37