作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
目前这不是真正的问题,只是我一个接一个的解决方案。
当然,我必须有一种更聪明的方法,然后像我在这里所做的那样给每个学生写一个 if 问题来获得他们的成绩。
如果我想获得相同的结果但使用 for 循环?我将如何继续这样做?任何明智的建议?
var nameandgrades = {
"students": [{
"namn": "Klara",
"grade": "A"
},
{
"namn": "Andrea",
"grade": "B"
},
{
"namn": "Emil",
"grade": "C"
}
]
};
var klara = "Klara";
var andrea = "Andrea";
var emil = "Emil";
function getGrade() {
var studentname = document.getElementById("studentname").value;
if (studentname == klara) {
document.getElementById("output").innerHTML = nameandgrades.students[0].grade + ' ';
}
if (studentname == andrea) {
document.getElementById("output").innerHTML = nameandgrades.students[1].grade + ' ';
}
if (studentname == emil) {
document.getElementById("output").innerHTML = nameandgrades.students[1].grade + ' ';
}
}
<!DOCTYPE html>
<html lang="sv">
<head>
<meta charset="utf-8">
<title>json javascript</title>
</head>
<body>
<h1> Write the students name and see what grade he/she has! </h1>
<form>
<!-- textbox -->
<input type="text" id="studentname" value="Klara" placeholder="name of the student" />
<br />
<br>
<!-- mouseclick -->
<input type="button" value="visa" onclick="getGrade();" />
<br />
<br>
</form>
<div id="output"> </div>
</body>
</html>
最佳答案
您想从姓名与输入中给出的姓名相匹配的学生数组中获取该对象。
find()
在 nameandgrades.students
并检查对象是否name
属性匹配哪个输入值。 const
用于对象和 html 元素的声明。 grade
检查是否找到对象,否则将导致错误。 const input = document.getElementById("studentname");
const output = document.getElementById("output")
const nameandgrades = { "students": [{ "name": "Klara", "grade": "A" }, { "name": "Andrea", "grade": "B" }, { "name": "Emil", "grade": "C" } ] };
function showGrade() {
let name = input.value
let object = nameandgrades.students.find(x => x.name === name);
let grade;
if(object){
grade = object.grade
}
output.innerHTML = grade || "Sorry student not found"
}
<h1> Write the students name and see what grade he/she has! </h1>
<form>
<!-- textbox -->
<input type="text" id="studentname" value="Klara" placeholder="name of the student" />
<br />
<br>
<!-- mouseclick -->
<input type="button" value="visa" onclick="showGrade();" />
<br />
<br>
</form>
<div id="output"> </div>
关于javascript - 如何将我的 if 语句变成 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65307523/
我是一名优秀的程序员,十分优秀!