(一)map函数
任务:把数组(1,2,3,4,5) → (2,4,6,8,10)
[讲] 作用:通过对数组的每一个元素应用一个函数来构建一个新数组。
[讲] 语法: 新数组 = 旧数组.map(旧元素=>新元素) 代码:
val arr1 = Array(1,2,3,4,5,6)
val arr2 = arr1.map(x=>x*2)
for(i <- arr2){
println(i)
}
[练] :把(1,2,3,4,5) → (1,4,9,16,25)
代码:
// 原数组
val nums1 = Array(1, 2, 3, 4, 5)
// 使用 map 对每个元素求平方
val squared = nums1.map(elem => elem * elem) // 等价于 nums1.map(_ * _)
// 打印结果
println(squared.mkString(", ")) // 输出:1, 4, 9, 16, 25
[练] :把(-1,2,-3,-4) → (1,2,3,4)
代码:
// 原数组
val nums2 = Array(-1, 2, -3, -4)
// 使用 map 对每个元素取绝对值
val absolute = nums2.map(elem => math.abs(elem)) // 等价于 nums2.map(math.abs)
// 打印结果
println(absolute.mkString(", ")) // 输出:1, 2, 3, 4
(二)foreach函数
任务: 打印数组中的元素
[讲] 作用:对数组的每一个元素应用函数。
[讲] 语法:数组.foreach(元素=>{})
[码]
// 定义一个数组
val nums = Array(1, 2, 3, 4, 5)
// 使用 foreach 打印每个元素
nums.foreach(elem => {
println(elem) // 对每个元素执行打印操作
})
(三)filter函数
任务:在数组中找出元素是偶数的,并组成新数组。(1,2,3,4,5) → (2,4)
[讲] 作用:对数组元素使用函数进行过滤。
[讲] 语法:新数组= 旧数组.filter(元素=>bool) 它的参数是一个函数,这函数的返回值是布尔值。如果返回为true就保留。 [码]
val arr1 = Array(1,2,3,4,5,6)
val arr3 = arr1.filter(x=> x%2 == 0)
arr3.foreach(println)
[练] :去掉不及格的分数:(60,59,80,70) → (60,80,70)
代码:
// 原分数数组
val scores = Array(60, 59, 80, 70)
// 使用 filter 筛选及格分数(≥ 60)
val passedScores = scores.filter(score => score >= 60)
// 打印结果
println(passedScores.mkString(", ")) // 输出:60, 80, 70
任务:对成绩(100,51,55,67,59,89)进行处理,如果分数在56-59之间,就设置为60分,得到的新成绩为(100,51,55,67,60,89)
代码:
// 原成绩数组
val scores = Array(100, 51, 55, 67, 59, 89)
// 使用 map 处理成绩:56-59分调整为60分,其余不变
val adjustedScores = scores.map { score =>
if (score >= 56 && score <= 59) 60 // 符合条件的分数替换为60
else score // 其他分数保持不变
}
// 打印结果
println(adjustedScores.mkString(", ")) // 输出:100, 51, 55, 67, 60, 89