gpt4 book ai didi

javascript - 如何将我的 if 语句变成 for 循环

转载 作者:行者123 更新时间:2023-12-04 08:24:58 25 4
gpt4 key购买 nike

目前这不是真正的问题,只是我一个接一个的解决方案。
当然,我必须有一种更聪明的方法,然后像我在这里所做的那样给每个学生写一个 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属性匹配哪个输入值。
  • 获得该对象后,获取其等级并输出。

  • 其他一些提示是:
  • 在全局范围内声明 html 元素,以便每次单击按钮时都不会得到它们。
  • 使用 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/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com