一、函数封装
1.求学生总分
需求:学生的分数是一个数组,计算每个学生的总分
分析:①: 封装一个求和函数
②: 传递过去的参数是一个数组
③: 函数内部遍历数组求和
function getScore(arr){
let sum = 0
for (let i = 0; i < arr.length; i++){
sum += arr[i]
}
document.write(sum)
}
getScore([99,10,100])
二、函数返回值
(一)返回一个值
1. 求任意数组中的最大值并返回这个最大值
function getArrMaxValue(arr){
let max = arr[0]
for (let i = 0; i < arr.length; i++){
if (max < arr[i]){
max = arr[i]
}
}
return max
}
let maxplus = getArrMaxValue([99,10,100])
document.write(maxplus)
2. 求任意2个数中的最大值, 并返回
★ 方法一
function getRandomMaxValue(x,y){
let max = 0
if (x > y){
max = x
}else {
max = y
}
return max
}
let maxplus = getRandomMaxValue(10,20)
document.write(maxplus)
★ 方法二
let num1 = +prompt(`请输入第一个数:`)
let num2 = +prompt(`请输入第二个数:`)
function getMax(x,y){
if (x > y){
return x
}else {
return y
}
}
let max = getMax(num1,num2)
document.write(max)
★ 方法三 (三元表达式法)
let num1 = +prompt(`请输入第一个数:`)
let num2 = +prompt(`请输入第二个数:`)
function getMax(x,y){
return x > y ? x : y
}
let max = getMax(num1,num2)
document.write(max)
(二)返回多个值
1. 求一个数组的最大值和最小值
function getArrMaxAndMin(arr){
let max = min = arr[0]
for(let i = 0; i < arr.length; i++){
if (max < arr[i]){
max = arr[i]
}
if (min > arr[i]){
min = arr[i]
}
}
return [max,min]
}
let x = getArrMaxAndMin([1,5,8,2,0])
document.write(`数组的最大值是${x[0]},数组的最小值是${x[1]}`)
三、综合案例
需求: 用户输入秒数,可以自动转换为时分秒
分析:
①: 用户输入总秒数
②: 计算时分秒(封装函数) 里面包含数字补0
③:打印输出
计算公式:计算时分秒
小时: h = parseInt(总秒数 / 60 / 60 % 24)
分钟: m = parseInt(总秒数 / 60 % 60 )
秒数: s = parseInt(总秒数 % 60)
let second = +prompt(`请输入总的秒数:`)
function getTimes(t){
let h = parseInt(t / 60 / 60 % 24)
let m = parseInt(t / 60 % 60 )
let s = parseInt(t % 60)
h = h < 10 ? '0' + h : h
m = m < 10 ? '0' + m : m
s = s < 10 ? '0' + s : s
return `计算之后的时间是${h}小时${m}分${s}秒`
}
let str = getTimes(second)
document.write(str)