In the following code, can somebody explain why object property is returned using a for loop but not using a forEach.
Is it something related to returning object references or is it something specific to forEach loop on an array ?
var empModule = (function(){
var empArray = [{
"name":"Aish",
"age":"27",
"location": "All"
},{
"name":"Anu",
"age":"26",
"location": "Muz"
},{
"name":"Vern",
"age":"25",
"location": "Mang"
}];
var searchAge = function(name){
for(var i=0;i<empArray.length;i++) {
if(empArray[i].name === name) {
return empArray[i].age;
}
};
};
var searchLocation = function(name){
empArray.forEach(function(obj){
if(name === obj.name) {
return obj.location;
}
});
};
return {
findAge: searchAge,
findLocation: searchLocation
};
})();
var secAge = empModule.findAge("Anu");
console.log(secAge); // Correct Output
var thirdLoc = empModule.findLocation("Vern");
console.log(thirdLoc); // Returns undefined
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…