Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Javascript Undefined Check Shorthand [duplicate]

Tags:

javascript

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.

like image 886
gyleg5 Avatar asked Oct 18 '25 15:10

gyleg5


2 Answers

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

finalData.transactions = (data && data.b && data.b.transactions) || [];
like image 195
Nico Avatar answered Oct 20 '25 04:10

Nico


You can do it like below:

var finalData = {};
const data = {};
finalData.transactions = data.b && data.b.transactions || [];
like image 34
Faly Avatar answered Oct 20 '25 03:10

Faly