Ich habe das folgende Array und ich habe eine Funktion zum Zurückgeben von Elementen aus dem Array basierend auf dem übergebenen Filter erstellt.Erstellen Sie eine if-Bedingung dynamisch
var students = [
//name grade room gender
["name1", 80, "Farabi", "K"],
["name2", 73, "B1", "K"],
["name3", 73, "B1", "K"],
["name4", 60, "Farabi", "K"],
["name5", 80, "B1", "E"],
["name6", 43, "Farabi", "E"],
];
function getGrades() {
var grades = [];
for (var i = 0; i < students.length; i++) {
if (students[i][arguments[0][1]] == arguments[0][0]) {
grades.push(students[i][1]);
}
}
return grades;
}
getGrades(["E", 3]); // [gender, column index]
Dies funktioniert so lange, wie ich einen einzelnen Filter passiere. Wenn ich zwei Filter übergeben möchte, z. B. getGrades(["E", 3], ["B1", 2])
, funktioniert es nicht.
Ich brauche eine Möglichkeit zum Konfigurieren (erweitern) der If-Bedingung students[i][arguments[0][1]] == arguments[0][0]
basierend auf den übergebenen Argumenten.
Für getGrades(["E", 3], ["B1", 2])
, wenn die Bedingung
students[i][arguments[0][1]] == arguments[0][0] && students[i][arguments[1][1]] == arguments[1][0]
Wie kann ich dynamisch ein, wenn die Bedingung erstellen?