我想知道如何获得数组中某些元素的和? 例如,下面是我的数组,我只需要对前5个元素求和:
var num = [31, 28, 31, 30, 30, 31, 30, 31, 30, 29, 31, 31]
我试着用Range来做这件事,但没有成功:
for I in 0..<num[5] {
.....
}
我想知道如何获得数组中某些元素的和? 例如,下面是我的数组,我只需要对前5个元素求和:
var num = [31, 28, 31, 30, 30, 31, 30, 31, 30, 29, 31, 31]
我试着用Range来做这件事,但没有成功:
for I in 0..<num[5] {
.....
}
for I in 0..<nums[5]
不是以您预期的方式工作,因为nums[5]
是"nums
的第五个(索引为0的)元素".所以你写的是as if:
for i in 0..<31 { ... }
这不是你想要的.
要迭代num
数组的前5个元素,您需要首先对其进行切片.这里有两种方法可以做到这一点:
请求包含5个元素的前缀:
for n in nums.prefix(5) { print(i) }
从开头开始切片,直到第5个元素(在索引4处):
for n in nums[...4] { print(i) }
这两个答案都会打印前5个数字(31、28、31、30、30).
总而言之,您可以使用循环手动完成:
var sum = 0
for n in nums.prefix(5) { sum += n }
print(sum)
或者更简洁地说,reduce
个:
let sum = nums.prefix(5).reduce(0, +)