Opracowałem bibliotekę aC#, która była używana w 3 projektach, które przekazują ten konkretny fragment kodu, chociaż nadal potrzebuję użyć tego kodu w javascriptu, więc im to przeniesię, Rzecz w tym, że nie mogę powtórzyć tej samej logiki, na przykład, myślałem o tym przez kilka dni, nie mogłem znaleźć odpowiedzi.Przenoszenie C# 3D Array do JS 3D Array
W bibliotece C# mam tablicę 3D, która jest trochę podobna do właściwości głównej w aplikacji i nie mogę wymyślić, jak wykonać tę pracę w środowisku JS.
Na przykład mam ten fragment kodu:
public Obj[,,] objs = new Obj[18, 14, 8];
W którym chciałbym przeznaczyć obiektów w każdej pozycji i próbuje portu, do javascript, pozornie skutkowałoby:
var 3dArr = new Array();
3dArr[0] = new Array();
3dArr[0][0] = new Array();
Czy to nie zawsze utrzymywałoby obiekt tablicy w pierwszej pozycji i gdybym ustawił coś innego, straciłbym całą tablicę? Czy jestem w błędzie?
Jesteś poprawne. Nie ma wbudowanego typu, który reprezentuje wielowymiarowe tablice w JS. – zerkms
Możesz zbudować go w JS albo w postaci zagnieżdżonych tablic, myślę, że to opisałoby to w C# 'public Obj [Obj [Obj []]] objs', albo utworzysz adapter z API, który zajmuje n-wymiarowe pozycje i mapy je do jednowymiarowych kluczy/wskaźników na wewnętrznej strukturze danych. jak 'key = [x, y, z] .join ('::')' lub 'index = (x * 14 + y) * 8 + z'. Pewnie + sprawdzenie, czy pozycja nie jest poza granicami. – Thomas