我想使用Swift 3将数组中的所有A
字符替换为15
。
示例数组:
["4", "5", "6", "A", "A", "Q", "A"]
期望的结果:
["4", "5", "6", "15", "15", "Q", "15"]
答案 0 :(得分:1)
在游乐场测试。
因为你的问题缺乏你最初没有给出的信息,所以你可以做到这一点。
" for循环":如果需要,您可以迭代并替换值。 这是一种可以应用于几乎所有语言的逻辑。
var array1 = ["4", "5", "6", "A", "A", "Q", "A"]
for index in 0 ... array1.count-1
{
if array1[index] == "A"
{
array1[index] = "15"
}
}
print("array1: \(array1)")
"对于每个循环":如果需要,迭代并替换值。 这是一个可以应用于几乎所有语言的逻辑(可能是前一个语言的语言更少)
var array2 = ["4", "5", "6", "A", "A", "Q", "A"]
for (index, object) in array2.enumerated()
{
if object == "A"
{
array2[index] = "15"
}
}
print("array2: \(array2)")
" map":" map"为你迭代(这里是魔法背后的重要部分),你检查值并在需要时替换值。 $0
代表"当前项"。
这是一个特异性。
var array3 = ["4", "5", "6", "A", "A", "Q", "A"]
array3 = array3.map({
if $0 == "A"
{
return "15"
}
return $0
})
print("array3: \(array3)")
" map":" map"迭代你,你检查值,如果需要,用三元测试替换值。
var array4 = ["4", "5", "6", "A", "A", "Q", "A"]
array4 = array4.map({$0 == "A" ? "15" : $0})
print("array4: \(array4)")
我提供了4种方式(我也可以明确更多地map()
明确关闭,从最简单到更复杂。我们无法知道你是否愿意#39; t显示你被困的尝试。它是否为循环?基本算法?
Swift高级用户可能更喜欢最后一个用户,但对于初学者来说,它非常复杂并且具有魔力#34;因此,当他们想要为不同的测试稍微改变它时,他们永远不知道该怎么做。
旁注:我不是Swift开发人员,更像是Objective-C,因此可能缺少检查。这个答案是展示不同的方法,你如何从一个"详细"更少"冗长"代码,但无论如何你需要掌握。即使您遇到map()
问题,也可以绕过"绕过"它并手动完成。
答案 1 :(得分:0)
let values = ["4", "5", "6", "A", "A", "Q", "A"]
let mappedvalues = values.map({ (value: String) -> String in
if value != "A" {
return value
}
return "15"
})