在本教程中,我们将学习如何使用简单的for循环方法从一个数组中删除一个元素。这种方法背后的逻辑是,创建一个新的数组,并且要移除的特定索引元素不要添加到新的数组中。让我们通过不同的例子来看看如何执行它。
在主函数中从数组中删除元素
在这个方法中,我们将在main函数中执行整个程序。一个原始数组和一个新的数组将被创建,以执行从数组中移除元素的任务。让我们来看看并灌输解决这个问题的方法。
算法
第1步 - 在程序中声明main包和导入fmt包。
第2步 - 创建一个函数main,并在该函数中进一步创建一个数组,在数组中填入需要删除的值。
第 3 步–创建一个变量i,并将其索引分配给要删除的变量。
第4 步 – 检查一个条件,如果索引小于0,或者如果值大于数组的长度,则打印出索引超出范围。
第5步 - 如果条件不满足,则创建一个名为originalarr的数组和变量j,进一步运行一个循环,直到数组的范围,并检查当变量i的值不等于索引值时,将旧数组的值分配给新数组并做j++。
第6步 - 当数值相似时,这意味着要删除索引,根据算法,该索引值将不会被添加到数组中,循环继续。
第7步 - 循环结束后,我们重新切割数组,删除多余的索引,并使用fmt.Println()函数在控制台打印新数组。
例子
Golang程序使用main方法从数组中删除一个元素
package main
import (
"fmt"
)
func main() {
originalarr := [5]string{"Vatsal", "Kartik", "Ritika", "Veronica", "Isha"} //create array
fmt.Println("The original array is:", originalarr)
i := 3 //index to be deleted
fmt.Println("The index to be deleted is:", i)
if i < 0 || i >= len(originalarr) {
fmt.Println("The given index is out of bounds.")
} else {
j := 0
for index := range originalarr { //run a loop till end of array
if i != index {
originalarr[j] = originalarr[index] //assign the old array values to new array
j++
}
}
newarr := originalarr[:j] //reslicing array to remove extra index
fmt.Println("The new array after deleting the element is:", newarr)
}
}
输出
The original array is: [Vatsal Kartik Ritika Veronica Isha]
The index to be deleted is: 3
The new array after deleting the element is: [Vatsal Kartik Ritika Isha]
用用户定义的函数从数组中删除元素
在这个方法中,我们将在外部函数中执行整个程序。一个原始数组和一个新的数组将被创建,以执行从数组中移除元素的操作。原始数组将被作为参数从主函数中传递。让我们来看看如何解决这个问题。
算法
第1步 - 在程序中声明main包和导入fmt包。
第2步 - 创建一个名为remove_ele的函数,其中包含数组作为参数,并进一步在该函数中创建一个变量,将要删除的元素的索引分配给该变量。
第 3 步 – 检查一个条件,如果索引小于0或者数值大于数组的长度,则打印出索引超出范围。
第4步 - 如果条件不满足,则创建一个名为originalarr的数组和变量j,进一步运行一个循环,直到数组的范围,并检查当变量i的值不等于索引值时,将旧数组的值分配给新数组并做j++。
第5步 - 当数值相似时,这意味着要删除索引,根据算法,该索引值将不会被添加到数组中,循环继续。
第6步 - 循环结束后,我们重新切割数组,删除多余的索引,并使用fmt.Println()函数在控制台打印新数组。
第7步 - 主函数以数组为参数调用外部函数,之后整个程序运行。
例子
Golang程序使用外部函数的方法从数组中删除一个元素
package main
import (
"fmt"
)
func remove_ele(originalarr []int) {
i := 3 //index to be deleted
fmt.Println("The index to be deleted is:", i)
if i < 0 || i >= len(originalarr) {
fmt.Println("The given index is out of bounds.")
} else {
j := 0
for index := range originalarr {
//run a loop till end of array
if i != index {
originalarr[j] = originalarr[index]
//assign old array value to new array
j++
}
}
newarr := originalarr[:j]
//reslicing array to remove extra index
fmt.Println("The new array after deleting the element is:", newarr)
}
}
func main() {
arr := []int{10, 20, 30, 40, 50}
//create array
fmt.Println("The array is:", arr)
remove_ele(arr)
}
输出
The array is: [10 20 30 40 50]
The index to be deleted is: 3
The new array after deleting the element is: [10 20 30 50]
总结
我们用两种方法执行了从数组中删除一个元素的程序。在第一种方法中,我们使用main方法来删除元素;在第二种方法中,我们使用外部方法,其中数组被作为参数通过main函数传递。在这两种情况下都得到了类似的输出。因此,程序成功执行。