Home > database >  javascript: empty array value
javascript: empty array value

Time:11-11

I have the following loop which calls an api and pushes data to an array, the issue is that the API is returning empty values for certain attributes i.e "primaryTag": null and is breaking my code, how can I handle it to place a static value if any of the values are null?

for (var a in audience) {
        
      var aId = audience[a];
      var url = base '?' query '&AudienceId=' aId
      var req = new HttpClientRequest(url);
      req.header["Content-Type"] = "application/json"
      req.method = "GET"
      req.execute();
      var resp = req.response;  
       
      if( resp.code != 200 )
      throw "HTTP request failed with "   resp.message
         
      var posts = JSON.parse(resp.body)
      logInfo(resp.code ' ' url);

      
        for (i = 0; i < 11; i  ) {
          articlesList_json.push({
                "title":posts[i].title, 
                "pubDate":posts[i].publishedDate, 
                "link":posts[i].url, 
                "imageURL":posts[i].imageUrl, 
                "description": posts[i].description,
                "category": posts[i].category.name,
                "audience": posts[i].audience.name '-' posts[i].audience.id,
                "tag": posts[i].primaryTag.name,
                "episerverId":posts[i].episerverId,
            });
        } 
      
}//for loop end

enter image description here

enter image description here

CodePudding user response:

Have a look at optional chaining

"tag": posts[i].primaryTag?.name ?? "N/A"

Alternatively use a ternary:

"tag": posts[i].primaryTag ? posts[i].primaryTag.name : "N/A"

CodePudding user response:

Values like null, undefined, empty Strings, 0 and NaN evaluated as false in Javascript.

You can check if the value is not null with an if condition

if(value) {
// value is not null
// do something with the value
}

In your example u can use a ternary expression to check this in place

        for (i = 0; i < 11; i  ) {
          articlesList_json.push({
                // check if value is not falsy and provide a default when it is
                "title":posts[i].title ? posts[i].title : "no value",
                // ...
            });
        } 

check https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator for more information

  • Related