我尝试获得Found(名称)等级为(等级),但似乎代码仅适用于第一个人Bob,但是当它是George时,则说找不到。
var studentArray = [
{ 'name': 'Bob', 'grade': 87 },
{ 'name': 'Fred', 'grade': 82 },
{ 'name': 'George', 'grade': 93 },
{ 'name': 'Robert', 'grade': 85 }
];
function findStudent(studentName) {
var i = 0; //var i = 0 should be inside
var output = "";
while (i < studentArray.length) {
if(studentName === studentArray[i].name) {
output = ( "Found " + studentName + " their grade is " + studentArray[i]['grade']);
} else {
output = ("Student " + studentName + " not found.");
}
i++;
}
return output;
}
var name = 'George';
var result = findStudent(name);
console.log(result);
答案 0 :(得分:1)
您需要在循环外进行检查
var studentArray = [{ 'name': 'Bob', 'grade': 87 }, { 'name': 'Fred', 'grade': 82 }, { 'name': 'George', 'grade': 93 }, { 'name': 'Robert', 'grade': 85 }]
function findStudent(studentName) {
var i = 0;
var output = "";
while (i < studentArray.length) {
if (studentName === studentArray[i].name) {
output = ("Found " + studentName + " their grade is " + studentArray[i]['grade']);
}
i++;
}
if (!output) {
output = ("Student " + studentName + " not found.");
}
return output;
}
var name = 'George';
var result = findStudent(name);
console.log(result);
大多数人会使用find()
var studentArray = [{ 'name': 'Bob', 'grade': 87 }, { 'name': 'Fred', 'grade': 82 }, { 'name': 'George', 'grade': 93 }, { 'name': 'Robert', 'grade': 85 }]
function findStudent(studentName) {
var out = studentArray
.find(function (o) {
return o.name===studentName;
});
return out
? `Found ${studentName} their grade is ${out.grade}`
: `Student ${studentName} not found.`
}
var name = 'George';
var result = findStudent(name);
console.log(result);
答案 1 :(得分:0)
如果找到,则应立即返回,而不要经历整个循环