将两个数组匹配为一个数组。不通过for循环

Dav*_*ang 0 arrays ios swift

我有两个数组

var arrayA = [false, false, false, false, false]
var arrayB = [1,2,3]
Run Code Online (Sandbox Code Playgroud)

数组B保留数组A的索引。例如,数组B的第一个对象为1。表示数组A的索引值为1,将被更改。

现在我要创建一个 newArray: [false,true,true.true,false]

怎么做?提前致谢。

一种方法是2 for循环。有没有更简单,更有效的方法?

Swe*_*per 8

您不需要两个for循环,只需要一个循环即可arrayB

for index in arrayB {
    arrayA[index] = true // or maybe arrayA[index] = !arrayA[index]
}
Run Code Online (Sandbox Code Playgroud)

或搭配forEach

arrayB.forEach { arrayA[$0] = true }
Run Code Online (Sandbox Code Playgroud)

arrayB在执行此操作之前,您可能需要检查任何超出范围的元素:

arrayB = arrayB.filter { $0 >= 0 && $0 < arrayA.count }
Run Code Online (Sandbox Code Playgroud)