martedì 25 settembre 2007

Javascript: Array veramente 3d

Oggi parliamo della creazione di un array a tre dimensioni in javascript.

La necessità di scrivere questo articolo nasce da una certa disinformazione in giro per la rete (http://www.mrwebmaster.it/tutorial/js/tutorial612-2.htm). Quello degli array multidimensionali è un argomento spesso trascurato o cmq trattato male e con pochi esempi pratici.

Come al solito presentiamo subito il caso:

var arr = new Array(); //prima dimensione (x)

arr[0] = new Array(); //seconda dimensione per il primo campo (0,y)
arr[1] = new Array(); //seconda dimensione per il secondo campo (1,y)


arr[0][0] = new Array(); //terza dimensione su (0,0) quindi (0,0,z)
arr[0][1] = new Array(); //terza dimensione su (0,1) quindi (0,1,z)
arr[1][0] = new Array(); //terza dimensione su (1,0) quindi (1,0,z)
arr[1][1] = new Array(); //terza dimensione su (1,1) quindi (1,1,z)

//combinazioni:
arr[0][0][0] = '0 0 0';
arr[0][0][1] = '0 0 1';
arr[0][1][1] = '0 1 1';
arr[1][1][1] = '1 1 1';
arr[1][1][0] = '1 1 0';
arr[1][0][0] = '1 0 0';
arr[0][1][0] = '0 1 0';
arr[1][0][1] = '1 0 1';

//visualizziamo il contenuto dell’array: arr[1][0][0]

alert(arr[1][0][0]);

bene, fine della storia. Tutto qua, si tratta solo di muoversi all’interno di array che a loro volta si trovano all’interno di altri array. Non c’è trucco e non c’è inganno.

Naturalmente, una volta chiarite le idee procediamo con l’automatizzarne il procedimento:

var arr = new Array(); //prima dimensione (x)


var str = 'Array 3D:'; //stringa per l’output


for (var x = 0 ; x <>

arr[x] = new Array(); //seconda dimensione

for (var y = 0 ; y <>

arr[x][y] = new Array(); //terza dimensione

for (var z = 0 ; z <>

arr[x][y][z] = x+' '+y+' '+z; //popolamento

str += arr[x][y][z] + ' ';
}

}
}
document.write(str); //output

Come si nota dal codice bastano solo tre cicli for nidificati per inizializzare e popolare il nostro array 3d.

NB: per provare il codice javascript di cui sopra ricordarsi di inserirlo tra i tag script! :P

Ciauz!

3 commenti:

Jagger ha detto...

Ma che cazzo... hanno cambiato il modo per postare i commenti. Cmq lo hai smerdato sul forum di mrwebmaster a quello?

IndexOut ha detto...

il modo di postare l'ho cambiato io! Così è più comodo... e poi ora puoi postare senza registrarti!

Cmq non mi va di mettermi a scrivere su quel forum! Mi dovrei pure registrare! No no...

Alececk84 ha detto...

e come fai a mettere i commenti così???