1

I have this Javascript array, how can I recreate it in Go? I'm completely lost on how to create so many nested slices or arrays.

var jsArray = [
    [
        [],
        [],
        [],
        [],
        [],
    ],
    [
        [],
        [],
        [],
        [],
        []
    ]
];

JSON output:

[[[],[],[],[],[]],[[],[],[],[],[]]]

Thank you!

1
  • Your example may be over-simplified, as it's not clear what the purpose of this data structure is (it doesn't contain any "real" data). If you just want anything that resembles this pattern, there might be a lot of options. Commented Aug 29, 2021 at 8:27

2 Answers 2

2

Let's assume that the values that you will store in your current JS array will look like this

var jsArray = [
    [
        [1, 2],
        [3, 4],
        [5, 6],
        [7, 8],
        [9, 10]
    ],
    [
        [11, 12],
        [13, 14],
        [15, 16],
        [17, 18],
        [19, 20]
    ]
];

The same values can be stored in the Golang slices like this

goSlice := [][][]int{
    {
        []int{1, 2},
        []int{3, 4},
        []int{5, 6},
        []int{7, 8},
        []int{9, 10},
    },
    {
        []int{11, 12},
        []int{13, 14},
        []int{15, 16},
        []int{17, 18},
        []int{19, 20},
    },
}

The output for the above slice looks like this

[[[1 2] [3 4] [5 6] [7 8] [9 10]] [[11 12] [13 14] [15 16] [17 18] [19 20]]]

which is identical to the jsArray structure.

Instead of slices if you want to use array than you can use the define it like this

goArray := [2][5][2]int{
    {
        [2]int{1, 2},
        [2]int{3, 4},
        [2]int{5, 6},
        [2]int{7, 8},
        [2]int{9, 10},
    },
    {
        [2]int{11, 12},
        [2]int{13, 14},
        [2]int{15, 16},
        [2]int{17, 18},
        [2]int{19, 20},
    },
}

Hope this will help you.

Sign up to request clarification or add additional context in comments.

1 Comment

In the nested slice/array literal, you can omit the repeated []ints or [2]ints to make it a bit more tidy.
0

Try this:

func main() {
    var jsArray [2][5][0]int
    fmt.Println(jsArray)
}

You can create your nested slice and describe the length of each slice it contains going from the outside in.

https://www.tutorialspoint.com/go/go_multi_dimensional_arrays.htm

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.