2017-05-06 84 views
1

随机元件发生我有7个元素的数组: VAR myArray的= [0,0,0,0,0,0,0]获得从夫特阵列

我随机处理过程中翻转这些0以1点的: var myArray = [1,0,0,1,0,1,1]

我的问题是,我该如何得到仍为零的随机元素之一?例如,我希望系统能够采取上面的第二个数组,并随机选择索引1,2或4.

这让我难倒了几个小时,任何帮助将不胜感激!

回答

1

您可以枚举数组,过滤元素等于零并映射元素偏移量。然后你只需要使用arc4random_uniform来随机选择其中的一个:

let myArray = [1, 0, 0, 1, 0, 1, 1] 

let myZeroIndices = myArray.enumerated() 
          .filter{ $0.element == 0 } 
          .map{ $0.offset }   // [1, 2, 4] 

let randomIndice = myZeroIndices[Int(arc4random_uniform(UInt32(myZeroIndices.count)))] // 4 
+1

完美的工作 - 你先生,是一个绅士和学者,谢谢你! – tbaldw02

+0

不用客气 –