Javascript JS-显示与该分数相关的最高分数和名称

Javascript JS-显示与该分数相关的最高分数和名称,javascript,arrays,Javascript,Arrays,JS代码: var names = ["Ben", "Joel", "Judy", "Anne"]; var scores = [88, 98, 77, 88]; var textDisplay; var $ = function (id) { return document.getElementById(id); }; var listArray = function () { var scoresString = ""; for (var i = 0; i &l

JS代码:

var names = ["Ben", "Joel", "Judy", "Anne"];
var scores = [88, 98, 77, 88];
var textDisplay;

var $ = function (id) {
    return document.getElementById(id);
};


var listArray = function () {
    var scoresString = "";
    for (var i = 0; i < names.length; i++) {
        scoresString += names[i] + ", " + scores[i] + "\n";
    } // lists all names and scores in their respective array orders
    $("results").value = scoresString;

};

var showBest = function () {
    var bestString = "";
    var highScore = Math.max.apply(Math, scores);
    for (var i in scores) {
        if (scores[i] > highScore) highScore = scores[i];
        bestString += "High Score Student = " + names[i] + "\n" + "High Score = " + highScore;
    }
    $("results").value = bestString;
};

    $("add").onclick = addElement;
    $("name").focus();
    $("list_array").onclick = listArray;
    $("show_best").onclick = showBest;
var name=[“本”、“乔”、“朱迪”、“安妮”];
var得分=[88,98,77,88];
变量文本显示;
var$=函数(id){
返回文档.getElementById(id);
};
var listary=函数(){
var scoresString=“”;
对于(var i=0;i高分)高分=分数[i];
bestString+=“High Score Student=“+names[i]+”\n“+”High Score=“+highScore;
}
$(“结果”)。值=最佳字符串;
};
$(“添加”).onclick=addElement;
$(“名称”).focus();
$(“列表数组”).onclick=listArray;
$(“show_best”)。onclick=showBest;
“显示最佳分数”按钮应显示得分最高的学生姓名及其分数。现在,它显示最高分数,但它也将该分数与数组中的所有名称关联,因此所有名称都显示相同的高分。我只想要与最高分数关联的名称(1个名称,1个分数)

任何意见都将不胜感激


编辑:我的问题是var showBest-如何只显示一个名字和一个分数?现在,它显示了所有的名字和一个高分。

您走对了方向:

var highScore = Math.max.apply(Math, scores);     // gives the highest score
var scoreIndex = scores.indexOf(highScore);       // gives the location of the highest score
var bestStudent = names[scoreIndex];              // gets the name at the same location
var bestString += "High Score Student = " + bestStudent + "\n" + "High Score = " + highScore;

此代码假定这两个数组的顺序正确

你没有问清楚一个问题。你的代码有问题吗?你希望人们通读你的代码,了解你想要做什么吗?抱歉@NateC-K这是我的原始声明。现在添加了一个问题:)为什么它们是独立的数组?为什么不创建一个将分数与用户关联的集合?否则怎么知道哪个分数属于哪个用户?@ChaseFlorell数组在我的教科书的原始代码中是分开的。这是一个介绍JS的课程。然后你的代码需要为你合并它<代码>变量用户=[{“名称”:“乔”,“分数”:89},{“名称”:“约翰”,“分数”:128}]好的,所以我改变了它的那部分,但是现在按钮不起作用了。我不确定我是否做错了什么:[更新]()如果使用浏览器的开发工具(在Chrome或IE中,按F12),单击按钮时会看到错误。看起来您用大写字母
I
拼写了
indexOf
,对不起,我在代码示例中也这样做了。更新啊,我觉得这不是骆驼壳很奇怪哈哈。非常感谢!