Skip to content
Advertisement

How to avoid ‘cannot read property of undefined’ errors?

In my code, I deal with an array that has some entries with many objects nested inside one another, where as some do not. It looks something like the following:

JavaScript

This is giving me problems because I need to iterate through the array at times, and the inconsistency is throwing me errors like so:

JavaScript

I am aware that I can say if(a.b){ console.log(a.b.c)}, but this is extraordinarily tedious in cases where there are up to 5 or 6 objects nested within one another. Is there any other (easier) way that I can have it ONLY do the console.log if it exists, but without throwing an error?

Advertisement

Answer

Update:

  • If you use JavaScript according to ECMAScript 2020 or later, see optional chaining.
  • TypeScript has added support for optional chaining in version 3.7.
JavaScript

Solution for JavaScript before ECMASCript 2020 or TypeScript older than version 3.7:

A quick workaround is using a try/catch helper function with ES6 arrow function:

JavaScript
User contributions licensed under: CC BY-SA
9 People found this is helpful
Advertisement