将对象数组传递给另一个对象 class

Pass an array of objects into another class

假设我有一个 class:

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)

如何将一组实习生作为参数传递给另一个 class 导师? 我可以创建一个空数组并这样做:

arr = []
 
Mentor{
   constructor(name, arr){
   this.name
   this.arr
  }
  getMentorHappiness() = this.arr.Intern.mark * 2 
}

对吗?因此,根据我 select 哪个导师的依赖,它将向我展示只有这位导师教的这些实习生唯一获得幸福的方法。类似的东西:

let d = new Mentor('Dean', [Anne, John]
let e = new Mentor('Sam', [Marry])

我想我必须以某种方式参考基于 Mentors 对象数组输入的信息?

这里有几件事:

  1. 你忘了导师是 class ( class 导师)
  2. 忘记从构造函数中赋值
  3. 忘记return getMentorHappiness 函数的值
  4. 您需要将带有实习生的数组传递给 Mentor 构造函数,而不是空数组
  5. 然后您需要以某种方式寻址实习生数组以从中获取标记
  6. 忘了引用这个。在实习生标记为 return

下面是重构代码的示例,有效

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());

此功能将计算特定导师实习生的平均值。请注意它在原始问题中乘以 2