Nick D
Nick D

Reputation: 91

How can I re-create this Javascript array structure in Go?

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!

Upvotes: 1

Views: 210

Answers (2)

Hamza Anis
Hamza Anis

Reputation: 2565

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.

Upvotes: 2

ecg8
ecg8

Reputation: 1392

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

Upvotes: 0

Related Questions