У меня есть программа, которая создает список массивов.Первый массив заполняется значениями, в то время как другие массивы могут быть либо пустыми, либо нет.Если оно пустое, мы берем значение из первого массива и перемещаемся в пустой массив.Цель никогда не состоит в том, чтобы в списке был пустой массив
Array Values
A1 -> V1, V2, V3, V4, V5 // add extra val to whatever is nxt in line
A2 <------|----------| //add A1[0][1] and A1[0][4] since its extra
A3 <----------| //add A1[0][2]
A4 <--------------| //add A1[0][3]
Вот что у меня есть.Что меня смущает, так это то, что индекс случайно выходит за пределы диапазона, в то время как иногда он работает, и я уверен, что есть гораздо более оптимальный и эффективный способ сделать это.Я хотел бы увидеть это.
package main
import "fmt"
func main(){
//Create list of arrays
something := []string{"first", "second", "third"}
something2 := []string{""}
something3 := []string{""}
thisMap := make(map[int] []string, 0)
//assign them
thisMap[0] = something
thisMap[1] = something2
thisMap[2] = something3
//loop through the maps
for k, v := range thisMap{
//if the key is great than 0
if k > 0 {
//loop through the array
for _, items := range v {
//if the item is empty
if items == "" {
//we remove the empty string since we dont need it
v = v[1:]
//append the k value from the first array to the k array
v = append(v, thisMap[0][k])
//We update the array and remove the item we just assigned from the initial array
thisMap[0] = append(thisMap[0][:k], thisMap[0][k+1:]...)
}
}
//Assign the arrays back to the map
thisMap[k] = v
}
}
fmt.Println(thisMap)
}