supongamos que tengo una clase:
class Intern{ constructor(name, mark) { this.name = name this.mark = mark } getMark() {return mark} } let a = new Intern('John', 10) // let's say I create 3 objects of this class let b = new Intern('Marry', 9) let c = new Intern('Anne', 8)¿Cómo puedo pasar una matriz de pasantes como argumento a otra clase de mentor? Puedo crear una matriz vacía y hacer esto:
arr = [] Mentor{ constructor(name, arr){ this.name this.arr } getMentorHappiness() = this.arr.Intern.mark * 2 }¿Es eso correcto? Entonces, dependiendo de qué mentor seleccione, me mostrará el único método para obtener la felicidad de estos pasantes que solo enseña este mentor. Algo como eso:
let d = new Mentor('Dean', [Anne, John] let e = new Mentor('Sam', [Marry])Creo que tengo que referirme de alguna manera a la información basada en la matriz de entrada de objetos de Mentors.
Pocas cosas aquí:
A continuación se muestra el ejemplo de su código refactorizado, que funciona
class Intern{ constructor(name, mark) { this.name = name; this.mark = mark; } getMark() {return this.mark;} } class Mentor{ constructor(name, arr) { this.name = name; this.arr = arr; } getMentorHappiness() { let sum = 0; for (let intern of this.arr) { sum += intern.getMark(); } return sum / this.arr.length * 2 } } // driver code to test let a = new Intern('John', 10); let b = new Intern('Marry', 9); let c = new Intern('Anne', 8); let d = new Mentor('Dean', [a, b, c]); console.log(d.getMentorHappiness()); console.log(a.getMark()); console.log(d.arr[0].getMark());Esta función calculará el promedio de los pasantes para el mentor específico. Tenga en cuenta que se multiplica por 2 como en la pregunta original