如何对Swift数组中的项目进行随机排序并删除。
如何对Swift数组中的项目进行随机排序并删除。
我有一个水果数组。我正在随机获取一个水果(见下面的代码)。问题是:在获取后,我如何从数组中删除这个水果?\nlet fruits = [\"apple\", \"orange\", \"banana\", \"pineapple\", \"lemon\" ]\nfunc getRandomFruit() -> String {\n let randomFruit = fruits.randomElement()!\n return randomFruit\n}\n
\n答:你可以使用`remove(at:)`方法将随机获取的水果从数组中删除。下面是修改后的代码:\nlet fruits = [\"apple\", \"orange\", \"banana\", \"pineapple\", \"lemon\" ]\nfunc getRandomFruit() -> String {\n let randomIndex = Int.random(in: 0..
问题的原因是希望能够随机化一个数组的元素,并且在随机选取一个元素后将其从数组中移除。解决方法是使用Swift中的数组方法来实现。
首先,我们定义一个函数`getRandomFruit()`来实现随机选取并移除数组中的一个元素。该函数首先使用`guard`语句来判断数组是否为空,如果为空则返回`nil`。接着,通过`fruits.indices.randomElement()`方法来随机选取一个索引,并将其赋值给`index`变量。然后,使用`defer`语句来延迟移除选取的元素,确保该元素会在函数返回前被移除。最后,返回选取的元素`fruits[index]`。
接下来,我们定义一个包含水果的数组`fruits`。该数组包含了一些水果的名称。
然后,我们通过调用`getRandomFruit()`函数来随机选取并移除数组`fruits`中的元素。每次调用该函数时,将返回一个随机选取的水果名称,并且该水果名称将会在数组中被移除。如果数组为空,则函数将返回`nil`。
最后,通过连续调用`getRandomFruit()`函数来随机选取并移除数组`fruits`中的元素。我们可以看到,每次调用函数时,数组中的元素会被逐个选取并移除,直到数组为空。最后一次调用函数时,返回的结果为`nil`,表示数组已经为空。
总结起来,通过上述方法,我们可以实现对数组元素的随机选取和移除操作。这种方法可以确保每次选取的元素都是随机的,并且数组会在选取后动态地更新。这对于需要随机操作数组元素的场景非常有用。