我需要更改 Swift 数组的值。
我的第一次尝试只是迭代,但这不起作用,因为我只获得每个元素的副本,并且更改不会影响原始数组。
目标是在每个数组元素中都有一个唯一的“索引”。
myArray = [["index": 0], ["index":0], ["index":0], ["index":0]]
counter = 0
for item in myArray {
item["index"] = counter
counter += 1
}
我的下一次尝试是使用 map ,但我不知道如何设置递增值。我可以设置
$0["index"] = 1
但我需要一个增加的值(value)。使用 map 可以通过哪种方式实现?
myArray.map( { $0["index"] = ...? } )
谢谢你的帮助!
最佳答案
柜台在 for
循环是一个常数。要使其可变,您可以使用:
for var item in myArray { ... }
但这在这里不会有帮助,因为我们会变异
item
而不是 myArray
中的元素.你可以改变
myArray
中的元素这边走 :var myArray = [["index": 0], ["index":0], ["index":0], ["index":0]]
var counter = 0
for i in myArray.indices {
myArray[i]["index"] = counter
counter += 1
}
print(myArray) //[["index": 0], ["index": 1], ["index": 2], ["index": 3]]
counter
这里不需要变量:for i in myArray.indices {
myArray[i]["index"] = i
}
编写上述内容的一种功能方式是:
myArray.indices.forEach { myArray[$0]["index"] = $0 }
关于arrays - 遍历 Swift 数组并更改值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54973104/