Find element in a slice and move it to first position?
Example
package main
import (
"fmt"
)
func main() {
sliceInt := []int{11,2, 19, 220, 31, 5, 65, 70, 100}
find:=65
fmt.Println(sliceInt)
if len((sliceInt)) == 0 || (sliceInt)[0] == find {
fmt.Println(sliceInt)
return
}
if (sliceInt)[len(sliceInt)-1] == find {
(sliceInt) = append([]int{find}, (sliceInt)[:len(sliceInt)-1]...)
fmt.Println(sliceInt)
return
}
for p, x := range sliceInt {
if x == find {
(sliceInt) = append([]int{find}, append((sliceInt)[:p], (sliceInt)[p+1:]...)...)
break
}
}
fmt.Println(sliceInt)
}
Output
[11 2 19 220 31 5 65 70 100]
[65 11 2 19 220 31 5 70 100]
Most Helpful This Week
Convert specific UTC date time to PST, HST, MST and SGT
Golang Functions Returning Multiple Values
How to check if a map contains a key in Go?
How to declare empty Map in Go?
Regular expression to validate phone number
Example: Arrays of Arrays, Arrays of Slices, Slices of Arrays and Slices of Slices
How to print string with double quote in Go?
Regular expression to extract filename from given path in Golang
Higher Order Functions in Golang
How to trim leading and trailing white spaces of a string in Golang?