Я думаю, что это будет работать, но я думаю, что Time Complexity
может быть O(n)
, так как я предполагаю, что есть вероятность randomElement
возврата Apple
каждый раз, а savedFruit
также Apple
, поэтому в этом случае Time Complexity
будет O(n)
. Лучшим обходным решением будет удалить этот элемент из этого array
, поэтому в следующий раз randomElement
наверняка будет другим. Затем, когда он станет другим, вы можете добавить старый и удалить текущий. Я надеюсь, что это имеет смысл для вас, но сейчас это будет работать, я думаю:
let array = ["Apple","Banana","Orange","Pinapple", "Plum", "Pear"]
var savedFruit = String()
func fetchRandomFruit() {
if let fruit = array.randomElement() {
if fruit != savedFruit { //Here it will check if the last element is same as the new randomElement
savedFruit = fruit
fruitbox.text = savedFruit
} else {
fetchRandomFruit()
}
}
}
@IBAction func fruitbutton(_ sender: UIButton) {
fetchRandomFruit()
}