I have a string that I am trying to loop through. It has nested arrays and I want to get the values from each layer. However I seem to be getting an undefined from the second layer onwards.
//String [{"username":"test","usersurname":"test","cellnumber":"test","displayname":"test","profilepicture":"test","projects":[{"projectname":"test","dateadded":"test","notes":"test","image":"test"},{"task":[{"taskname":"test","taskdescription":"test","taskimage":"test"}]}]}]
//My for loop - All variables are declared prior
   for(var i = 0; i < data.length; i++){
    username = data[i].username;
    console.log(username);
    usersurname = data[i].usersurname;
    cellnumber = data[i].cellnumber;
    displayname = data[i].displayname; 
    profilepicture = data[i].profilepicture;
    for(var j = 0; j < data[i].projects.length; j++){
      dateadded = data[i].projects[j].dateadded;
      console.log(dateadded);
      notes = data[i].projects[j].notes;
      image = data[i].projects[j].image;
       for(var k = 0; k < data[i].projects[j].task.length; k++){
         taskname = data[i].projects[j].task[k].taskname;
         console.log(taskname);
         taskdescription = data[i].projects[j].task[k].taskdescription;
         taskimage = data[i].projects[j].task[k].taskimage;
       }          
    }
  }
 
    