检查数组中是否存在该元素,然后在两个数组之间进行替换Swift

Check if the element exists in the array, and then replace between two arrays Swift

我有一个 class 个“玩家”和一个 class 个“团队”。我创建了两个字符串数组,分别调用 player1.name、player2.name 等。 一排主力,一排次要

Class:

class Players {
    let name: String
    let number: int
    var position:PositionPlayer
    var birth: Date
    let nationality: String
    var height: Double 
    var weight: int
    init(name: String, number: Int, position: PositionPlayer, birth: Date, height: Double, weight: Int) {
        self.name = name
        self.number = number
        self.position = position
        self.birth = birth
        self.nationality = nationality
        self.height = height
        self.weight = weight
    }

Class团队是空的(只是在上面做功能)

数组:

var mainPlayers: [String] = []
var secondaryPlayers: [String] = []

在数组中添加元素:

mainPlayers.append("\(player1.name)")

如何在 class“团队”中创建一个检查数组元素并在两个数组之间进行替换的函数?

例如我有3个主要玩家和3个次要玩家,我想把玩家4(次要玩家)放在玩家1的位置。

如果集合的顺序无关紧要,您应该使用集合来确保您的集合中没有重复的玩家:

var mainPlayers: Set = ["player1", "player2", "player3"]
var secondaryPlayers: Set = ["player4", "player5", "player6"]

let oldPlayer = "player1"
let newPlayer = "player4"
if mainPlayers.contains(oldPlayer),
    secondaryPlayers.contains(newPlayer),
    let oldMember = mainPlayers.remove(oldPlayer),
    let newMember = secondaryPlayers.remove(newPlayer),
    mainPlayers.insert(newMember).inserted,
    secondaryPlayers.insert(oldMember).inserted {
    print("oldMember", oldMember)   // player1
    print("newMember", newMember)   // player4
    print(mainPlayers)       // ["player3", "player4", "player2"]
    print(secondaryPlayers)  // ["player1", "player5", "player6"]
}

如果集合的顺序很重要,数组方法应该如下所示:

var mainPlayers = ["player1", "player2", "player3"]
var secondaryPlayers = ["player4", "player5", "player6"]

if let oldMemberIndex = mainPlayers.firstIndex(of: "player1"),
    let newMemberIndex = secondaryPlayers.firstIndex(of: "player4"),
    case let oldMember = mainPlayers.remove(at: oldMemberIndex),
    case let newMember = secondaryPlayers.remove(at: newMemberIndex) {
    mainPlayers.insert(newMember, at: oldMemberIndex)
    secondaryPlayers.insert(oldMember, at: newMemberIndex)
    print("oldMember", oldMember)   // player1
    print("newMember", newMember)   // player4
    print(mainPlayers)       // ["player4", "player2", "player3"]
    print(secondaryPlayers)  // ["player1", "player5", "player6"]
}