简体   繁体   中英

JavaScript - Printing from Array of Objects Not Working

I have this array of objects here that I am traversing and want to display a match if the person at the current index has an age within +/- 10 years of anyone else in the array. However, when I run it, it says "Cannot read property 'age' of undefined." Where did I go wrong?

function findmatches() {    
  var n = USERS.length;

  for (var i = 0; i < n; i++) {
    var currName = USERS[i].firstName;
    var currAge = USERS[i].age;
    var currGender = USERS[i].gender;

    for (var c = 0; c < 10; c++) {
      if (((USERS[c].age) + 10) <= currAge) {
        document.getElementById("showmatches").innerHTML += currName + " matched to >> " + USERS[i].firstName + " " + USERS[i].lastName + " \n";
        break;
      }
    }    
  }
}

What exactly is your second for loop supposed to do?

In the code you posted, it iterates through first 10 users in the USERS array. I assume it has less users than that, so at some point USERS[c] is undefined , and you're trying to access USERS[c].age .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM