Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Uncaught (in promise) TypeError: Cannot read properties of null (reading 'iso3166_1Alpha2') / Trying to skip null but cannot

I have a global list of mountains. I want to filter all French mountains. To do this, I need to check if iso3166_1Alpha2 is set to FR. The problem is that not all mountains have a value. The script dies after it hits a null value I think because this is the error:

Uncaught (in promise) TypeError: Cannot read properties of null (reading 'iso3166_1Alpha2')

This is my script. Seems my check of !== null is not working and do not know why.

function addJSON() {
  let url = "https://development.example.com/admin/mtn/json/mtn_areas.geojson";
  fetch(url)
    .then(function (response) {
      return response.json();
    })
    .then(function (data) {
      let mtn = data.features;
      for (var i = 0; i < mtn.length; i++) {
        if (mtn[i].properties.location.iso3166_1Alpha2 !== null) {
          x = mtn[i].properties.location.iso3166_1Alpha2;
          console.log(x);
        }
      }
    });
}

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

>Solution :

It seems like your are getting an item which doesn’t have a location property, in which case your condition won’t help preventing it. Try changin your function as below. Notice I’m using Optional chaining, the ?. syntax, to avoid any null or undifined property.

function addJSON() {
  let url = "https://development.example.com/admin/mtn/json/mtn_areas.geojson";
  fetch(url)
    .then(function (response) {
      return response.json();
    })
    .then(function (data) {
      let mtn = data.features;
      for (var i = 0; i < mtn.length; i++) {
        if (mtn[i]?.properties?.location?.iso3166_1Alpha2) {
          x = mtn[i].properties.location.iso3166_1Alpha2;
          console.log(x);
        }
      }
    });
}
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading