Swift程序:移除数组中所有指定元素


在这篇文章中,我们将学习如何编写一个Swift程序来移除数组中所有指定元素的出现。我们将使用以下方法:

  • 使用内置函数

  • 不使用内置函数

方法一:使用removeAll()函数

为了移除数组中所有指定元素的出现,我们使用一个预定义的函数`removeAll(where:)`。此函数移除给定序列中满足给定条件的所有元素。例如:

Array = [2, 3, 5, 67, 2, 87, 2, 68]
Element = 2
Output array = [3, 5, 67, 87, 68]

这里我们将移除原始数组中所有出现的数字2,并在输出中显示数组中剩余的元素。

语法

以下是语法:

mutating func removeAll(where removeElement:(self.Element) throws ->Bool)rethrows

这里`removeElement`是一个闭包,它接收给定序列中的一个元素作为参数,并返回一个布尔值,表示是否从给定序列中移除该元素。

算法

  • **步骤1** — 创建一个数组。

  • **步骤2** — 使用`removeAll(where:)`方法移除所有指定元素的出现。

Array.removeAll{$0 == 6}
  • **步骤3** — 打印输出

示例

import Foundation
import Glibc
 
// Creating an array of integer type
var Array : [Int] = [34, 6, 7, 81, 6, 56, 6, 32, 6, 6]

print("Original array:", Array)

// Deleting all the occurrences of 6 in the given array
// Using removeAll(where:) method
Array.removeAll{$0 == 6}

print("Modified array", Array)

输出

在下面的示例中,我们使用`removeAll(where:)`方法从数组中移除所有给定数字的出现。

Original array: [34, 6, 7, 81, 6, 56, 6, 32, 6, 6]
Modified array [34, 7, 81, 56, 32]

在上面的代码中,我们创建了一个整数类型的数组,其值为:[34, 6, 7, 81, 6, 56, 6, 32, 6, 6]。其中数字6在数组中出现了5次,现在我们想从数组中移除所有5次出现的6。因此,我们使用`removeAll{$0 == 6}`,这里`$0`表示传递到闭包中的数组的第一个元素。`removeAll{$0 == 6}`方法检查数组中从索引0到结尾的每个元素,并只移除满足给定条件的元素。

方法二:不使用内置函数

为了移除数组中所有指定元素的出现,我们使用条件语句。这里的条件语句将每个元素与要从数组中删除的元素进行比较。如果条件为真,则跳过该元素并打印其余的数组元素。

算法

  • **步骤1** — 创建一个函数。

  • **步骤2** — 使用`count`属性查找数组的大小。

  • **步骤3** — 使用for循环遍历数组的每个元素。迭代从0到数组大小-1。

  • **步骤4** — 使用if-else语句检查给定的数组元素是否等于该数字。如果当前数组元素等于给定的数字,则继续循环,否则打印数组。

  • **步骤5** — 在函数外部创建一个数组。

  • **步骤6** — 将要删除的数字赋值给一个变量。

  • **步骤7** — 调用函数并将数组和数字(要删除的数字)作为参数传递。

  • **步骤8** — 打印输出。

示例

在下面的示例中,我们使用条件语句从数组中移除所有给定数字的出现。

import Foundation
import Glibc

// Creating a function to delete all the 
// occurrence of 1 from the given array 
func DeleteElement(arr:[Int], num: Int) {
   let arrSize = arr.count
   
   print("Modified Array:")
   
   // Iterate through each element of the array
   for x in 0..<arrSize {
   
      // If the array element is equal to the given num
      // then continue the loop otherwise print the array
      if (arr[x] == num) {
         continue
      } else {
         print(arr[x], terminator:",")
         
      }
   }
}
// Creating an array of integer type
var Array : [Int] = [24, 1, 7, 91, 1, 56, 1, 42, 1, 0]
print("Original array:", Array)
let element = 1

// Calling the function 
DeleteElement(arr:Array, num: element)

输出

Original array: [24, 1, 7, 91, 1, 56, 1, 42, 1, 0]
Modified Array:
24,7,91,56,42,0,

在上面的代码中,我们创建了一个名为`DeleteElement()`的函数,它接收两个参数:一个数组和一个数字`num`(我们想要移除其所有出现的数字)。在这个函数中,我们遍历每个数组元素并使用`==`运算符与`num`进行比较。如果条件为真,则继续循环。否则,它将打印其余的数组。

结论

因此,为了从数组中移除所有指定元素的出现,我们可以根据需要使用内置函数或条件语句。两种方法都能很好地完成任务。

更新于:2022年12月20日

711 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.