不知道我是否有这个权利,无论如何,我有一个整数数组。取一个数组并为每个项目添加一个值?
我需要从数组中的每个项目添加/乘/除/减一个值。
所以这样的:
开始与
var listOfInts = [1, 2, 3, 4, 5, 6]
,并添加3到每一个项目,导致
listOfInts = [4,5,6,8,9]
我怎么会去这样做呢?
任何帮助将不胜感激,这是令人沮丧的,因为我通常可以自己弄清楚这些事情,但我对Swift来说比较新。
不知道我是否有这个权利,无论如何,我有一个整数数组。取一个数组并为每个项目添加一个值?
我需要从数组中的每个项目添加/乘/除/减一个值。
所以这样的:
开始与
var listOfInts = [1, 2, 3, 4, 5, 6]
,并添加3到每一个项目,导致
listOfInts = [4,5,6,8,9]
我怎么会去这样做呢?
任何帮助将不胜感激,这是令人沮丧的,因为我通常可以自己弄清楚这些事情,但我对Swift来说比较新。
如果你想发生变异的阵列,而不是创建一个新的(如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
}
映射到新的数组: var newListOfInts = listOfInts.map({ $0 + 3 })
变异同一个阵列:listOfInts = listOfInts.map({ $0 + 3 })
谢谢!完美工作! –