如何显示数组中与另一个数组(javascript)的值相关的值

如何显示数组中与另一个数组(javascript)的值相关的值,javascript,Javascript,我试图让这个名字和与这个名字相关的分数一起出现。所以如果最高分数是98,我想让Joels的名字出现在显示屏上,这里是名字 var names = ["Ben", "Joel", "Judy", "Anne"]; var scores = [88, 98, 77, 88]; var average; var total = 0; var highestScore = 0; var $ = function (id) { return document.getElementById(id); };

我试图让这个名字和与这个名字相关的分数一起出现。所以如果最高分数是98,我想让Joels的名字出现在显示屏上,这里是名字

var names = ["Ben", "Joel", "Judy", "Anne"];
var scores = [88, 98, 77, 88];
var average;
var total = 0;
var highestScore = 0;

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

var displayResults = function () {
    for (var i = 0; i < scores.length; i++) {
        total = total + scores[i];       //both are numbers so adds
        if (scores[i] > highestScore) {
            highestScore = scores[i];
        }          
    }

    //then calculate the average and display
    average = parseInt(total/scores.length);
    document.getElementById("results_header").innerHTML = ("Results");
    document.getElementById("results").innerHTML = ("\nAverage score is " + average + "\nHigh score = Name here with a score of " + highestScore); 
};

window.onload = function () {
    //$("add").onclick = addScore;
    $("display_results").onclick = displayResults;
    //$("display_scores").onclick = displayScores;
};
var name=[“本”、“乔”、“朱迪”、“安妮”];
var得分=[88,98,77,88];
var平均值;
var合计=0;
var最高分=0;
var$=函数(id){return document.getElementById(id);};
var displayResults=函数(){
对于(变量i=0;i最高分数){
最高分数=分数[i];
}          
}
//然后计算平均值并显示
平均值=parseInt(总分/总分.长度);
document.getElementById(“results_header”).innerHTML=(“results”);
document.getElementById(“results”).innerHTML=(“\nAverage score为“+average+”\nHigh score=此处的名称,分数为“+highestScore”);
};
window.onload=函数(){
//$(“添加”).onclick=addScore;
$(“显示结果”).onclick=displayResults;
//$(“显示分数”)。onclick=显示分数;
};
您有i值(分数数组中分数的位置)。该i值与persons数组中的person对应。使用此i值选择人员

为了简化操作,可以使用对象将名称(字符串)与分数(int)关联起来,如:


然后需要修改for循环。

这些都是在脚本中执行的非常基本的操作。我希望这些信息对您有所帮助

我已经在下面详细解释了这个答案中使用的技巧。所有代码段都可以在浏览器中运行。单击下面的运行代码段以查看结果

//输入数据
变量名称=[“本”、“乔”、“朱迪”、“安妮”]
var得分=[88,98,77,88]
//这是对数组中的数字求和的常用方法
var total=分数.reduce(函数(x,y){return x+y},0)
//平均值=分数总和/分数数
var average=总分/总分.length
//使用Math.max查找最高分数
var highScore=Math.max.apply(空,分数)
//获取与最高分数匹配的名称
var highScoreName=名称[分数.indexOf(highScore)]
//将信息输出到控制台
//替代方法:使用innerHTML或其他方法打印到DOM
console.log(“总计:%d”,总计)
console.log(“平均值:%d”,平均值)

console.log(“最高分数:%s有%d”,highScoreName,highScore)
由于
名称和
分数
数组具有相同的
.length
,您可以使用相同的
i
变量来选择
名称中的项目
数组中的项目,就像选择
分数中的项目一样

声明
name
变量

var name = "";
if (scores[i] > highestScore) {
  highestScore = scores[i];
  name = names[i];
}
document.getElementById("results")
.innerHTML = "\nAverage score  is " 
          + average 
          + "\nHigh score = " 
          + name 
          + " here with a score of " 
          + highestScore;
设置
name
变量

var name = "";
if (scores[i] > highestScore) {
  highestScore = scores[i];
  name = names[i];
}
document.getElementById("results")
.innerHTML = "\nAverage score  is " 
          + average 
          + "\nHigh score = " 
          + name 
          + " here with a score of " 
          + highestScore;
显示
name
变量

var name = "";
if (scores[i] > highestScore) {
  highestScore = scores[i];
  name = names[i];
}
document.getElementById("results")
.innerHTML = "\nAverage score  is " 
          + average 
          + "\nHigh score = " 
          + name 
          + " here with a score of " 
          + highestScore;

您可以存储索引而不是最高分数,并使用它来获取名称。我已经更改了您的代码以支持它,并在任何地方添加了注释“更改”

 var names = ["Ben", "Joel", "Judy", "Anne"];
    var scores = [88, 98, 77, 88];
    var average;
    var total = 0;
    var highScoreIndex = 0;// Changes

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

    var displayResults = function () {
        for (var i = 0; i < scores.length; i++) {
                total = total + scores[i];       //both are numbers so adds
                    if (scores[i] > highestScore) {
                highestScoreIndex = i; // Changes
            }

           }

    //then calculate the average and display
            average = parseInt(total/scores.length);
            document.getElementById("results_header").innerHTML =   
     ("Results");
            document.getElementById("results").innerHTML = ("\nAverage score  
          is " + average + "\nHigh score = " + names[highestScoreIndex] + " with a score of " +    
        scores[highestScoreIndex]); //Changes


    };

    window.onload = function () {
        //$("add").onclick = addScore;
        $("display_results").onclick = displayResults;
        //$("display_scores").onclick = displayScores;
    };
var name=[“本”、“乔”、“朱迪”、“安妮”];
var得分=[88,98,77,88];
var平均值;
var合计=0;
var highScoreIndex=0;//变化
var$=函数(id){return document.getElementById(id);};
var displayResults=函数(){
对于(变量i=0;i最高分数){
highestScoreIndex=i;//更改
}
}
//然后计算平均值并显示
平均值=parseInt(总分/总分.长度);
document.getElementById(“结果\标题”).innerHTML=
(“结果”);
document.getElementById(“结果”).innerHTML=(“\nAverage分数
是“+average+”\n高分=“+names[highestScoreIndex]”,分数为“+
分数[最高分数指数];//变化
};
window.onload=函数(){
//$(“添加”).onclick=addScore;
$(“显示结果”).onclick=displayResults;
//$(“显示分数”)。onclick=显示分数;
};
试试看:


显示 变量名称=[“本”、“乔”、“朱迪”、“安妮”]; var得分=[88,98,77,88]; var平均值; var合计=0; var最高分=0; var hightName=“”; 函数displayResults(){ 对于(变量i=0;i最高分数){ 最高分数=分数[i]; hightName=名称[i]; } } //然后计算平均值并显示 平均值=parseInt(总分/总分.长度); document.getElementById(“结果”).innerHTML=(“\nAverage分数为”+average+”\n High score=“+hightName+”,分数为“+highestScore”); }; //$(“添加”).onclick=addScore; $(文档).ready(函数(){ $(“#显示#结果”)。单击(函数(){ 显示结果(); }) })
转换成数字

scoreInput=编号(scoreInput)

//然后计算平均分和最高分

重置总数

总数=0

for(变量i=0;i最高分数){