2015-12-07 79 views
2

不知道我是否有这个权利,无论如何,我有一个整数数组。取一个数组并为每个项目添加一个值?

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

所以这样的:

开始与

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

,并添加3到每一个项目,导致

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

我怎么会去这样做呢?

任何帮助将不胜感激,这是令人沮丧的,因为我通常可以自己弄清楚这些事情,但我对Swift来说比较新。

回答

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]" 

此CA N为写成的一行是这样的:

(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 
} 
+0

谢谢!完美工作! –

5

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

变异同一个阵列:listOfInts = listOfInts.map({ $0 + 3 })

相关问题