获取一个数组并为每个项添加一个值?

时间:2015-12-07 04:26:36

标签: swift

不确定我是否说得对,无论如何我有一个整数数组。

我需要在数组中的每个项目中添加/乘/除/减去一个值。

所以这样:

开始
var listOfInts = [1, 2, 3, 4, 5, 6]

并为每个项目添加3,结果为

listOfInts = [4,5,6,8,9]

我将如何做到这一点?

任何帮助都会非常感激,这一直令人沮丧,因为我通常可以自己弄清楚这些事情,但我对Swift来说相对较新。

2 个答案:

答案 0 :(得分:7)

映射到新数组: var newListOfInts = listOfInts.map({ $0 + 3 })

变异相同的数组:listOfInts = listOfInts.map({ $0 + 3 })

答案 1 :(得分:4)

如果你想改变你的数组而不是创建一个新数组(比如map那样),只需使用for循环来遍历并更改每个索引的值:

var listOfInts = [1, 2, 3, 4, 5, 6]   

for i in 0 ..< listOfInts.count {
    listOfInts[i] += 3
}

print(listOfInts)  // prints "[4, 5, 6, 7, 8, 9]"

这可以写成这样的单行:

(0 ..< listOfInts.count).forEach { listOfInts[$0] += 3 }

如果您需要使用该值执行更多操作,可以使用enumerate()访问一系列(index, value)元组:

// Example:  Replace each element with 60/value
listOfInts.enumerate().forEach { (i, v) in listOfInts[i] = 60 / v }

// This is the equivalent using a for loop
for (i, v) in listOfInts.enumerate() {
    listOfInts[i] = 60 / v
}