Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Tablica dwuwymiarowa
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
son
Znalazłem informację, że tablicę dwuwimiarowę w javascript deklaruje się tak:

Kod
a = new Array(4)
for (i=0; i < 4; i++) {
   a[i] = new Array(4)
   for (j=0; j < 4; j++) {
      a[i][j] = "["+i+","+j+"]"
   }
}


Niestety nie było opisu, a ja nie wiem tylko gdzie mam wpisać moje dane worriedsmiley.gif
ghostrider
Cytat
a[i][j] = "tutaj ?";
son
No dobrze, ale w takim wypadku tablica będzie zawierała 16 identycznych wpisów. Ja chcę, żeby każdy wpis był inny i problem w tym, że nie wiem gdzie te 16 wpisów zadeklarować.
ghostrider
może napisz co ty tam chcesz wpisywac, ja nie bardzo rozumiem o co ci biega.
son
Zobacz:
Tablica jest dwuwymiarowa, czyli wygląda jak prostokąt. W moim przypadku tablica jest wymiarów 4x4 z tego wynika, że może pomieścić 16 rekordów. Ja chcę tam zapisać np. takie dane:

1a 1b 1c 1d
2a 2b 2c 2d
3a 3b 3c 3d
4a 4b 4c 4d

Powiedz mi teraz jak mam to zadeklarować...
ghostrider
zobacz:
Kod
var rows = 4;
var cols = 4;
var matrix = new Array();
var litery = new Array('a', 'b','c','d');
var liczby = new Array('1','2','3','4');

for (var r=0; r<=rows; r++){
    matrix[r] = new Array();
    for (var c=0; c<=cols; c++) {
  //matrix[r][c] = "rząd: " + r+1 +","+ "kolumna: " + c+1;
matrix[r][c] = liczby[r] + "" + litery[c]
    }
}

document.write(matrix[0][3]);

to tworzy dwuwymiaraowa tablice, pierwszy index to rzedy, drugi to columny,
wiec: aby odczytac wartość powiedzmy: rzad 3, columna 2

Kod
document.write(matrix[2][1]);


indexy nadawane sa od 0 (zera), stąd te przesunięcia w liczbach, edytowałem tak zeby ci wrzuciło co chaciałeś.
son
Widzisz różnicę między odczytem a zapisem?
ghostrider
Cytat
  Widzisz różnicę między odczytem a zapisem?


nie bardzo rozumiem, chodzi ci o to jak cięzko zapiac wielowymiarową tablice, tak jest ciezko, ale sa cieższe rzeczy do napisania w JS, bardzo cięzkie, ale możliwe.

1,5 roku temu miałem klienta który za cholere nie chciał słyszec o cenie serwera php/mysql, napisałem wtedy e-sklep tylko w JS, działał rok(exclamation.gif) dopiero potem zauważyl jak to fajnie miec baze danych klientów.
son
Czy ktoś zna odpowiedź na moje pytanie?
ghostrider
kiedy już stworzysz tablice możesz tez przypisywać wartości:

Kod
matrix[0][2] = "cos tam";


napisz funckcje tworzacą tablice o zadanych wymiarach i przypisuj co chcech, gdzie chcesz.
Kod
function multi_array(rows, cols){
var matrix = new Array();
for (var r=0; r<=rows; r++){
matrix[r] = new Array();
for (var c=0; c<=cols; c++) {
matrix[r][c] = "";
}
return matrix;
}

var my_array = multi_array(7,8);
my_array[0][2] = "moja wartosc";
my_array[1][4] = 4;


cały czas mam wrazenie ze jest cos w twoim toku myslenia nie łapie winksmiley.jpg
son
Czy to jednyna metoda zapisywania danych do tablicy dwuwymiarowej? Przy zwykłych tablicach wygląda to o wiele lepiej, bo dane można zapisywać po przecinku:
Kod
Tablica=new Array("010400", "9b3000", "333300", "003301", "053265", "000082", "33339a", "323331");

Czy do tablicy dwuwymiarowej też można w ten sposób zapisywać rekordy? (tzn. jeden po drugim, po przecinku, a nie za każdym razem pisać adres tej talbicy i dopiero potem wartość)
FiDO
Kod
var tab = [
   ['1a', '1b', '1c', '1d'],
   ['2a', '2b', '2c', '2d'],
   ['3a', '3b', '3c', '3d'],
   ['4a', '4b', '4c', '4d']
];

O cos takiego Ci chodzi ?
son
Cytat(FiDO @ 2005-11-20 19:30:48)
Kod
var tab = [
  ['1a', '1b', '1c', '1d'],
  ['2a', '2b', '2c', '2d'],
  ['3a', '3b', '3c', '3d'],
  ['4a', '4b', '4c', '4d']
];

O cos takiego Ci chodzi ?

Wielkie dzięki. Od początku o to mi chodziło biggrin.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.