首页 > 解决方案 > 从另一个具有索引的数组更改数组字符串值

问题描述

我试图在改组另一个数组后更改数组中的字符串值,我该怎么做?

例子:

var array1 = [1,2,3,4,5,6]

var stringarray = ["\\(array1[0]) = 1") 

array1.shuffle()

print(stringarray)

我如何将原始 stringarray 值更改为新的洗牌值?

谢谢

任务:

    @IBAction func nextQuestion(_ sender: Any) {

    if levelSelected == 1 {
        questionLabel.text = standardRules.randomElement()
    }
    players.shuffle()
    print(players)

standardRules 有一个字符串值,它采用 player[0] 的值

基本上我想要做的是:

我正在尝试在这样的字符串中获取 2 个不同的随机值

    var players = ["Jack, John, Michael, Peter"]
    var playersArray = ["\(players.randomElement) and \(players.randomElement) has to battle")

我该怎么做,所以它可以获取 2 个不同的值?

标签: arraysswiftxcode

解决方案


看起来您缺少 Swift 语言的一些核心概念。当您创建时stringarray,它会调用array1.description并将结果存储到数组中。从那时起,对原始数组的任何修改都不会改变stringarray.

因此,如果您想从一个数组中选择两个不同的玩家,您需要执行以下操作:

let index1 = Int.random(in: (0 ..< players.count))
var index2: Int
repeat {
    index2 = Int.random(in: (0 ..< players.count))
} while index1 == index2
let matchText = "\(players[index1]) and \(players[index2] has to battle)"

推荐阅读