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.
这让我难倒了几个小时,任何帮助将不胜感激!
随机元件发生我有7个元素的数组: VAR myArray的= [0,0,0,0,0,0,0]获得从夫特阵列
我随机处理过程中翻转这些0以1点的: var myArray = [1,0,0,1,0,1,1]
我的问题是,我该如何得到仍为零的随机元素之一?例如,我希望系统能够采取上面的第二个数组,并随机选择索引1,2或4.
这让我难倒了几个小时,任何帮助将不胜感激!
您可以枚举数组,过滤元素等于零并映射元素偏移量。然后你只需要使用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
完美的工作 - 你先生,是一个绅士和学者,谢谢你! – tbaldw02
不用客气 –