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
Regular expression to validate the date format in "dd/mm/yyyy"
Convert specific UTC date time to PST, HST, MST and SGT
Different ways to validate JSON string
Sample program to create csv and write data
Anonymous Functions in Golang
How to use a mutex to define critical sections of code and fix race conditions?