检查数组中是否存在该元素,然后在两个数组之间进行替换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"]
}
我有一个 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"]
}