【问题标题】:Change array string value from another array with index从另一个具有索引的数组更改数组字符串值
【发布时间】:2019-04-01 05:12:45
【问题描述】:

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

例子:

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

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

array1.shuffle()

print(stringarray)

我如何将原来的 stringarray 值更改为新的 shuffle 值?

谢谢

任务:

    @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 个不同的值?

【问题讨论】:

  • 你想达到什么目的?也许值得向我们展示确切的任务?
  • 您需要stringArray 显示什么?还将您发布的代码中的第二行更改为更准确的示例。
  • 那么在players.shuffle()之后到底应该改什么? questionLabel 上的文字?
  • 是的,questionLabel.text 应该是标准规则中元素的新值,它是一个数组,值如下:standardRules = ["(players[0]) has to do this"] 然后洗牌球员数组后我想要一个新值
  • 正如您在previous question 中已经提到的,请考虑players 包含一个 项,这是一个以逗号分隔的一些名称的字符串。

标签: arrays swift xcode


【解决方案1】:

您似乎遗漏了 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)"

【讨论】:

    【解决方案2】:

    我会尝试替换:

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

    与:

    var stringarray = array1.shuffle()
    

    【讨论】:

      【解决方案3】:

      你可以通过这段代码让它变得非常简单:

      var players = ["Jack", "John", "Michael", "Peter"]
      
      // get the first random element
      var random1 = players.randomElement()
      
      //delete that element so you can't duplicate it 
      players = players.filter{$0 != random1}
      
      //get your second radom element
      var random2 = players.randomElement()
      
      //add your element again
      players.append(random1!)
      

      【讨论】:

        猜你喜欢
        • 2012-05-04
        • 2021-06-12
        • 2012-07-20
        • 1970-01-01
        • 2021-10-15
        • 1970-01-01
        • 2017-05-22
        • 2013-12-27
        • 1970-01-01
        相关资源
        最近更新 更多