Я пытаюсь создать объект из фабричной функции.Этот объект содержит внутренний прототип, который состоит из различных методов.
Я застрял на том, что нужно вернуть из метода getStars ().
Внутренний прототип:
const obj = {
addStars(rating){
return this.rating.push(rating)
},
getStars(?){
???
}
}
Заводская функция:
function createRecipe (ingredients, cooktime, rating='') {
let instance = Object.create(obj)
instance.ingredients = ingredients;
instance.cooktime = cooktime;
instance.rating = [];
return instance
}
Создаемый объект:
const recipe1 = createRecipe(['cheese', 'dough', 'basil'], 20)
Прямо сейчас я могу добавить звездные оценки разных людей в массив рейтинга, который находится в свойстве объекта.Как показано ниже:
recipe1.addStars('*****');
recipe1.addStars('***');
recipe1.addStars('*');
Мой вопрос заключается в том, что я хочу, чтобы метод getStars в моем внутреннем прототипе принимал среднее значение всех звездных оценок, добавленных в массив «rating».
Что я надеюсь увидеть:
recipe1.getStars(); // returns 3
Как мне манипулировать методом getStars (), чтобы получить желаемый результат?