作为一个完整的初学者,我试图理解这段代码的结果。令我困惑的是:
if (minAge > people[i].age) {
minAge = people[i].age;
youngestPersonsName = people[i].name;
我是如何理解这一点的,如果John:31大于约瑟夫:30(真实陈述),那么John:31被分配给minAge?
在我的脑海中,约翰是因为他的年龄>而不是其他人的结果!
var people = [
{
name: "John",
age: 31
},
{
name: "Joseph",
age: 30
},
{
name: "Mary",
age: 19
}
];
var youngestPersonsName = people[0].name;
var minAge = people[0].age;
for (var i = 0; i < people.length; i++) {
if (minAge > people[i].age) {
minAge = people[i].age;
youngestPersonsName = people[i].name;
}
}
console.log("The youngest person is" + youngestPersonsName);
算法只循环遍历所有条目,检查全局minAge是否大于循环的当前项(意味着循环项比全局minAge更年轻)。如果是这种情况,则minAge被该元素替换......在循环结束时,Mary应该是结果。在你的情况下,从索引0开始的循环没有用,因为你已经将它指定为最年轻的。在循环之前。