首页 > 解决方案 > 如何找到一个数组的多个索引值以调用另一个数组,javascript

问题描述

这是我到目前为止所得到的。我有两个数组,我找到了数值数组'grade'(grades >= 60)的条件值,我现在正试图找到与那些 >= 60 的数组值对应的索引值,这样然后,我可以在另一个数组“名称”上调用这些索引,以返回与及格分数相对应的学生“名称”。

非常感谢任何指针或提示,谢谢。

let total = 0;
let highest = 0;
let stuAvg= 0;  
let arr = [];


var names= [];
var grade= [];
var pos1 = [];



for (var i = 0; i < 10; i++) {             
    names.push(prompt('Enter The Ten Student Names | Student: ' + (i + 1))); 
    document.getElementById("stuNames").innerHTML=("Student's Names:" +names.join(','));
}
for (var i = 0; i < 10; i++) {              
    grade.push(Number(prompt('Enter The Ten Student Grades | Grade: ' + (i + 1))));
    total +=grade[i]; 
    stuAvg = total / grade.length;
    highest = Math.max(...grade);


    document.getElementById("stuGrades").innerHTML=("Student's Grades:" +grade.join(','));
}
function passing(grade) {
    return grade >= 60; 
}

function results() {
    pos1 = grade.indexOf(highest);
    arr = grade.filter(passing);


    document.getElementById("result").innerHTML=("Highest Grade:"+highest+"The Highest Grade 
          Belongs to:"+names[pos1]+" The Average Grade is "+stuAvg+"");
    document.getElementById("passing").innerHTML=("The Students who are passing are 
          "+arr+","+names+"");     
}

标签: javascriptarraysindexof

解决方案


您可以在执行过滤器时将这些索引存储在另一个数组中。

function results() {
    
    pos1 = grade.indexOf(highest);
    
    var passingStudents = []; // to store passing indexes
    arr = grade.filter((grade, index) => {
        var pass = grade >= 60;
        if(pass){
          passingStudents.push(index);
        }
        return pass;
    
    });
    passingStudents = passingStudents.map(index => names[index]); // change indexes for names

    document.getElementById("result")
        .innerHTML=("Highest Grade:"+highest
          +"\n The Highest Grade Belongs to:"+names[pos1]
          +"\nThe Average Grade is "+stuAvg+"");
    document.getElementById("passing")
        .innerHTML=("The Students who are passing are: " + passingStudents.join(", "));     
}

现在您在另一个数组中拥有了所需的索引。


推荐阅读