在Swift 3中用'15'替​​换数组中存在的所有'A'

时间:2017-11-27 09:36:11

标签: arrays swift

我想使用Swift 3将数组中的所有A字符替换为15

示例数组:

["4", "5", "6", "A", "A", "Q", "A"]

期望的结果:

["4", "5", "6", "15", "15", "Q", "15"]

2 个答案:

答案 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"
 })