javascript - 函数 calcAverage 怎么可能返回(提示)?
问题描述
我正在学习关于 Udemy 的课程,但我无法理解下面的代码。我想知道calcAverage(tips)
代码底部的函数如何可以访问对象 john 和 mark 的属性提示。
var john = {
fullName: 'John Smith',
bills: [124, 48, 268, 180, 42],
calcTips: function() {
this.tips = [];
this.finalValues = [];
for (var i = 0; i < this.bills.length; i++) {
// Determine percentage based on tipping rules
var percentage;
var bill = this.bills[i];
if (bill < 50) {
percentage = .2;
} else if (bill >= 50 && bill < 200) {
percentage = .15;
} else {
percentage = .1;
}
// Add results to the corresponing arrays
this.tips[i] = bill * percentage;
this.finalValues[i] = bill + bill * percentage;
}
}
}
var mark = {
fullName: 'Mark Miller',
bills: [77, 475, 110, 45],
calcTips: function() {
this.tips = [];
this.finalValues = [];
for (var i = 0; i < this.bills.length; i++) {
// Determine percentage based on tipping rules
var percentage;
var bill = this.bills[i];
if (bill < 100) {
percentage = .2;
} else if (bill >= 100 && bill < 300) {
percentage = .1;
} else {
percentage = .25;
}
// Add results to the corresponing arrays
this.tips[i] = bill * percentage;
this.finalValues[i] = bill + bill * percentage;
}
}
}
function calcAverage(tips) {
var sum = 0;
for (var i = 0; i < tips.length; i++) {
sum = sum + tips[i];
}
return sum / tips.length;
}
解决方案
calcAverage
对对象mark
和john
. 它只是一个期望数组作为参数的函数。它将计算传入数组的平均值:
var mark = {
fullName: 'Mark Miller',
bills: [77, 475, 110, 45],
calcTips: function() {
this.tips = [];
this.finalValues = [];
for (var i = 0; i < this.bills.length; i++) {
// Determine percentage based on tipping rules
var percentage;
var bill = this.bills[i];
if (bill < 100) {
percentage = .2;
} else if (bill >= 100 && bill < 300) {
percentage = .1;
} else {
percentage = .25;
}
// Add results to the corresponing arrays
this.tips[i] = bill * percentage;
this.finalValues[i] = bill + bill * percentage;
}
}
}
function calcAverage(tips) {
var sum = 0;
for (var i = 0; i < tips.length; i++) {
sum = sum + tips[i];
}
return sum / tips.length;
}
mark.calcTips() // calculates tips and store as tips property
// pass mark.tips into function
console.log("Mark's tip average:", calcAverage(mark.tips))
推荐阅读
- python - 在 Python Zelle 图形中创建 Rectangle 的子类
- linux - 在汇编中拆分字符串
- python - python中的子进程显示属性错误
- python - python列表中每个元素的唯一索引值
- python-3.x - 在 Python 3 中使用 __add__ 方法添加两个向量
- mysql - 如何将(插入)pandas DatafFrame 直接写入 MySQL 数据库?
- reactjs - 为什么我第一次点击按钮时屏幕没有更新,但之后却完全正常?
- ios - Flutter Firebase_Admob “Google 移动广告 SDK 需要 iOS 8.0 或更高版本的部署目标。” iOS 错误
- c# - 非常感谢 .OrderBy 和 group/cross join 方面的帮助
- blockchain - 如何检查功能是否支付?