I am trying to figure out why this code won't log the actual property values, and instead just logs undefined over and over, even though I thought I created the property 'random'
in each object and gave it a value with Math.random()
.
var students = [{id:'1'}, {id:'2'}, {id:'3'}, {id:'4'}];
sortStudents(resetRandom(students));
function resetRandom(ary) {
for (var i = ary.length - 1; i >= 0; i--) {
ary[i]['random'] = Math.floor(Math.random()*10000);
};
return ary
}
If I console.log()
the students array after invoking resetRandom(students)
the 'random'
property is defined as a number like expected, in each of the objects in the array. The function below is where the problem occurs when I try to log that property I just get undefined:
function sortStudents(ary) {
for (var i = ary.length - 1; i >= 0; i--) {
for(var key in ary[i]) {
if (key === 'random') {
console.log(ary[key]);
}
}
};
}
Change
to :