Software Engineering Wiki

WithIndex

Returns a map with index-value pairs.

  • Use reflect.ValueOf() to get the array or slice, make() to create a new map.
  • Use a for loop with Value.Len(), Value.Index() and Value.Interface() to iterate over each element and add it to the map.
import "reflect"

func WithIndex(params ...interface{}) map[int]interface{} {
	arr, m := reflect.ValueOf(params[0]),
		make(map[int]interface{})
	for i := 0; i < arr.Len(); i++ {
		m[i] = arr.Index(i).Interface()
	}
	return m
}
WithIndex([]int{4, 3, 2, 1}) // [0:4 1:3 2:2 3:1]

Last updated 15 September 2026 · Edit this page